Java多线程(~11.18)
来源:互联网 发布:c 手机软件编程 编辑:程序博客网 时间:2024/06/08 16:01
1、为了模拟现实生活中很多事情都是同时进行的这种状态,引入了线程机制,多线程使用相当广泛,使用它可以创建窗口程序、网络程序等。
2、Java主要提供两种方式实现线程:继承java.lang.Thread与实现java.lang.Runnable接口。
3、Thread:当执行一个线程程序时,就自动产生一个线程,主方法正是在这个线程上运行的,当不再启动其他线程时,该程序就成为单线程程序。主方法启动由Java虚拟机负责,程序员负责启动自己的线程。在主方法没有调用start()方法之前,Thread对象只是一个实例,而不是一个真正的线程。
4、线程都是通过扩展Thread类来创建的,如果程序员需要继承其他类(非Thread类),而且还要使当前类实现多线程,那么可以通过Runnable接口来实现。
5、线程的生命周期:出生状态(Thread t=new Thread();)、就绪状态(t.start())、运行状态、等待状态(t.wait())、休眠状态(t.sleep()醒来进入就绪状态)、阻塞状态和死亡状态。
6、虽然线程看起来像是同时执行,但事实上在同一时间点上只有一个线程被执行,只是线程之间切换较快。。。在Windows操作系统中,系统会给每个线程分配一小段CPU时间片,一旦CPU时间片结束就会将当前线程转换为下一个线程,即使该线程没有结束。
7、用Thread类中的join()方法来插入线程B。在线程A的run()方法中使线程B的对象调用join()方法,而join()方法使现在的线程暂停,直到调用join()方法的线程执行完毕后再执行,所以线程执行完毕后再执行。
8、在run方法中使用无限循环的形式,然后使用一个布尔型标记控制循环的停止。
9、线程的Thread类提供了一种礼让的方法yield(),但是仅仅是一种暗示,没有任何一种机制保证当前线程会将资源礼让。yield()方法使具有同样优先级的线程有进入可执行状态的机会,当当前线程放弃执行权时会再度回到就绪状态,对于支持多任务的操作系统来说,不需要调用此方法,因为操作系统会为线程自动分配CPU时间片来执行。
- Java多线程(~11.18)
- java多线程:多线程(一)
- JAVA多线程(转)
- Java-----多线程(上)
- Java-----多线程(中)
- Java-----多线程(下)
- Java多线程(小结)
- java 多线程(2)
- java多线程(二)
- java多线程(三)
- Java(多线程)
- Java多线程(上)
- Java多线程(下)
- 通俗易懂多线程(JAVA)
- java(20130806)多线程
- 多线程(JAVA)
- Java 多线程(上)
- Java 多线程(下)
- 回溯--深度优先搜索(数字n的组合数)
- ssm框架-简单的分页查询
- java中的static关键字详解及面试
- C++编写任意次clampedB样条曲线(曲线分别与第一个控制点和最后一个控制点的第一边和最后一边相切)
- Kotlin activity跳转-startActivity
- Java多线程(~11.18)
- 降采样,过采样,欠采样,子采样,下采样,上采样,你学会了吗?【总结】
- Matlab2012b&Simulink licence失效解决办法(重复激活解决方案)
- 使用SSH上传部署WAR包到服务器
- MapReduce之如何给运行在YARN上的MapReduce作业配置内存
- Elasticsearch实践(一)用Docker搭建Elasticsearch集群
- (8)RxJava2+Retrofit2+OkHttp3系列(Retrofit2-1)
- SPFA算法 (基于Bellman-Ford算法)
- Android工具之把int类型整数毫秒值转换为时间分秒格式