多线程学习
-
进程和线程的区别?
进程:进程是所有个线程的集合吗,每一个线程是进程中的一条执行路径 -
为什么要用到多线程?
提高程序效率
3线程创建
main是主线程,自己创建的是子线程
3.1 定义一个类,继承Thread类重写run方法中 需要线程执行的任务,代码开启线程用start方法,不直接从run方法开始使用多线程情况,代码不会从上往下进行,会同时并行执行CPU会随机分配资源
创建线程3种方式,一种继承,接口,匿名内部类(没有返回对象)
sleep()要用try()抛出异常等要先继承才能使用方法:getId()不重复 getName()根据线程创建自行分配
.setName(“自定义名称”)
currentThread()//获取当前线程对象。getId()wait()释放锁
运行状态:
新建 new()就绪 start()也要等待cpu给分配权限才是真正运行run()中,就说明在运行状态。run()走完后死亡。谨慎使用stop()selep()阻塞状态,到了之后又回到就绪状态,
重新分配到运行状态并不是开线程越多越好,会占用CPU资源线程开多少,根据服务器配置CPU(核数)来订。
实例“线程分配发送短信”一般来说,发送短信不需要结果,因为结合通信中,每一步都会耗时,如果等待某一个结果,在进行下一步就太耗时了。发送失败进行重新补发。