### (一)创建线程的方式
(1)实现Runnable接口
(2)继承Thread类
推荐使用接口,能够做到定义与实现分离,耦合更低
### (二)关于线程的优先级
thread2.setPriority(Thread.MAX_PRIORITY)
等级越高,优先运行
### (三)关于线程的yield的方法
关于yield方法,是指当前线程可能运行不太重要的任务,可以通过这个方法
暗示操作系统线程调度我可以晚点执行,先把CPU资源让给优先级给我一样或者大于我的
任务,如果没有没有发现符合条件的线程,那么还会执行该线程的任务
### (四)关于线程的join方法
在main方法中,启动一个线程A,如果执行了A.join()方法,那么
主线程必须等待A线程执行完,才能执行join之后的代码。
### (五)关于线程的sleep方法
让当前线程沉睡一定的周期
### (六)关于线程的interrupt方法
用来告诉某个线程应该停止,如果这个线程当前正在执行wait,sleep,join方法时会抛出InterruptedException
,如果正常状态下,我们可以通过isInterrupted()=true的时候,来停止线程使用return方法
### (七)关于线程的start和run方法
注意,要让线程运行,只能执行start方法,这个方法是native方法,run方法是我们定义
任务的地方,单独的调用run方法,就和调用正常方法是一样的。
start方法只能调用一次,超过一次则会抛出不合法状态异常。
### (八)关于线程的状态
在Oracle的官网文档中,定义了线程有六种状态分别是:
(1)NEW,执行new Thread()后,还没启动的线程
(2)RUNNABLE ,执行完new后,又执行了start方法
(3)BLOCKED 等待获得一个锁的监视器,或者等待进入一个同步块或者方法
(4)WATTING 等待其他的线程执行一个特定的操作,没有任何时间限制
(5)TIMED_WAITING 等待其他的线程在一定的时间周期内
(6)TERMINATED 完成任务后的线程
这有一幅图,总结的比较全面大家可以看下:
(九)总结
本篇文章主要介绍了Java里面一些线程基本的方法和概念,最后又叙述了关于线程运行时的状态,尤其是线程调度这块依赖底层的操作系统,在不同的系统上运行可能得到不同的结果,这一点需要注意。
有什么问题可以扫码关注微信公众号:我是攻城师(woshigcs) 路漫漫其修远兮,吾将上下而求索
分享到:
相关推荐
介绍了AfxbeginThread CreateThread的区别及使用方法
Thread ThreadThreadThreadThreadThreadThreadThreadThreadThreadThreadThreadThreadThreadThreadThreadThreadThread
主要介绍了java的基本语法,设计模式,线程,并且在实际开发中的注意事项,非常适合初学者。
Java学习更是如此,知识点总结目录如下: 目录 一、 Java概述 3 二、 Java语法基础 5 数据类型 5 运算符号 14 语句 15 函数 15 方法重载(Overloadjing)与重写(Overriding) 16 数组 17 总结 18 三、 常见关键字 ...
jvm的基础知识总结,根据线程共享和线程私有来划分,进行分别描述和具体参数解释和设置,可以更好的学习jvm的基础知识,方便以后运用
对java的基础知识进行了详细的总结,内容从基础数据类型到单例设计模式、内部类、多线程等容易被忽视的知识点都有介绍。以及集合框架和反射的知识点
非常全的java基础知识总结,包括线程,IO,堆栈,内部类,匿名类,面试题等等
java基础知识的总结文档,总结的挺好的,拿出来共享下!
思维导图:数据库,思维导图,多线程,IO,网络,集合,面向对象,基础知识点都是最全的总结,格式是xmind格式的,用百度脑图可以直接打开。
个人总结,一些java线程的基本心得,特别适合初学小白,希望可以有帮助
所以想到一个点写一个点,尽量总结一些有用的知识点。线程是个大话题,这个系列可能会有好几遍关于线程的,先从基础的开始,热热身。 一些基础概念 线程(Thread)是操作系统能够进行运算调度的最小单位。它是进程...
之前前辈传下来的复习提纲,帮助校招生找到好的...其中校招真题题解,JAVA IO,JAVA 并发,JAVA 基础,JAVA容器,JVM Leetcode、LINUX,Mysql,代码风格规范,计算机操作系统、算法、剑指offer、面向对象思想、设计模式
主要是C# 数据库操作基础内容,linq to sql ORM框架以及EF体系结构,内容里有一些附件不能一并上传,不过有问题可以自己动手搜索单个理解也许更有成效。本人推荐C#链接数据库使用EF模型即可。需要帮助可以添加群 ,...
最近系统学习了Android开发基础知识,并对其进行了总结。主要包含Android的UI组件、初高级资源、网络编程及Internet应用、多线程以及Service等后台操作、Handler消息处理机制、Handler和looper的关系、Android的数据...
java语言的基础知识,包括基础语法,数据类型,类,接口,继承,多态,线程,以及部分高级特性和特殊数据结构,适合初级和中级程序员参考和面试知识储备。
Java知识点总结大全(三) -- 多线程.xmind,其他里面还有基础知识,面向对象,io,集合,网络,sql的总结
刚接触linux的多线程编程,总结基础知识并编写socket通信的多线程多进程代码,已经验证可行,包括共享队列、套接字、循环队列、Makefile编写、动态库静态库编译和使用等。具体代码请看多线程多进程的事例分享。
可以和其它、JS文件以及内的内容进行多线程加载,使得加载速度更快 利于项目整体风格的调整,维护起来也更加便捷。单文件修改,全网站(应用)生效 浏览器会将CSS文件进行缓存,进一步地减少了加载所需时间 可以根据...
基本操作 Java基础 面向对象 多线程 String类 集合 IO socket网络编程 反射 泛型 你想要的通通都在这里