java深入线程

来源:互联网 发布:多空资金指标源码 编辑:程序博客网 时间:2024/05/21 01:49

线程的概念:让程序一次执行多个动作的手段

创建线程的两种方法:①继承Thread类(无法多继承)
    ②实现Runnable接口(run()方法中不能调用thread()方法,例如sleep(),getName())

运行线程:Thread.start()

线程的优先权:如果两个线程都准备就绪,优先权高的线程先执行。设置线程的有限权:thread.setPriority(thread.getPriority()+1)。

线程的状态

①创建状态

②就绪状态:调用start()方法,等待CPU调度

③运行状态:执行run()方法

④阻塞状态:暂时停止执行,把CPU资源留给其他线程

⑤终止状态:线程销毁

线程的常用方法

①取得线程名称:getName()

②取得当前对象:currentThread()

③判断线程是否启动:isAlive()

④线程的强行运行:join()————强制插入线程

⑤线程的休眠:sleep()————优秀的线程睡眠方法

⑥线程的礼让:yield()————礼让的休眠时间不能控制,有点鸡肋,我还是选择sleep吧,或许跟setPriority有意想不到效果吧

线程的两种同步方式

同步代码块:synchronize(同步对象){同步代码块}

②同步方法:synchronize void 方法名(){}

线程的几种用法

①不相关线程:在主函数start两个没关系的线程(类)

②相关但无需同步的线程:划分数据集,安装多个线程分别为解决同一个问题而作用与不同的数据部分

③互斥线程:线程交互的时候需要操纵同一数据结构,线程需要互相等待以免同时修改同一数据,造成数据不确定。

线程的生命周期

~~~~~理论讲辣么多有个屁用咩,下一节把所有的方法都用一遍吧,哈哈哈,望指导

原创粉丝点击