博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 多线程学习笔记
阅读量:7015 次
发布时间:2019-06-28

本文共 1614 字,大约阅读时间需要 5 分钟。

1. 无论使用哪种方式,最终都必须依靠 Thread 类才能启动多线程。

2. 启动线程是调用 start 方法,而不是调用 run 方法。

3. 同一个线程对象不能 start 2 次,否则将会抛异常:java.lang.IllegalThreadStateException。

4. Thread 类和 Runnable 接口之间在使用上也是有区别的,如果一个类继承了 Thread 类,则不适合于多个线程共享资源,而实现了Runnable 接口,就可以方便地实现资源的共享。

5. 

1 MyThread my = new MyThread();2 new Thread(my).start();3 new Thread(my).start();4 new Thread(my).start();

6.

1 MyThread mt1 = new MyThread();2 MyThread mt2 = new MyThread();3 new Thread(mt1).start();4 new Thread(mt2).start();

7. 创建 就绪 运行 阻塞 终止

8. 线程调用 stop() 方法时或 run() 方法执行结束后,即处于死亡状态。处于死亡状态的线程不具有继续运行的能力。

9. currentThread() 是 Thread 的一个静态方法,在你不重写父类 Thread 的这个方法的情况下,此时 this.currentThread 跟 Thread.currentThread 无任何区别。

10. Thread-0

11. Java 运行时,至少会启动两个线程,一个是 main 线程,另一个是垃圾收集线程。

12. 主线程有可能比其他线程先执行完。

13. 主方法的优先级是NORM_PRIORITY。

14. 并非线程的优先级越高就一定会先执行,哪个先执行将由CPU的调度决定。

15.

 

16. 静态块优于主方法的执行,静态块优于构造块的执行。

17. 访问权限{public|default|protected|private]}[final][static][synchronized]

  返回值类型|void 方法名称(参数类型 参数名称)[throws Exception1,]

18. synchronized 标注对象中所有参与同步的代码块,如下代码所示:

1 public synchronized void set(String name, String content){2     this.name = name;3     this.content = content;4 }5 public synchronized void get(){6     System.out.print(this.name +" ");7     System.out.print(this.content +"\n");8 }

  对于以上的代码,如果一个线程访问这个对象的 set 方法,那么这个对象中的 set 方法的代码块同这个对象的 get 代码块同时被锁住,其他的线程不能访问他们的代码块。

19. 结束线程不最好不要使用stop(),可以使用标志位。

20. run()方法为线程的主体。

 21. run方法同我们写的其他的方法实在没有什么不同的方法,所以如果你通过对象调用run方法,按照正常的程序逻辑,自然是调用一次,和线程没有一毛钱关系的,对线程的具体实现是在start方法中进行的,通过相关机制,将run方法中的内容另起炉灶,脱离main方法的线程,自己独立拥有一个线程执行。

22. 实现Runnable接口的类启用线程的方式是借用Thread的方法。

转载于:https://www.cnblogs.com/ddhjy/p/4132231.html

你可能感兴趣的文章
RedHat 7.2 KVM通过V2V迁移VMware的虚拟机
查看>>
Sonar6.0应用之三:集成Eclipse实时代码质量分析(附Eclipse初始化)
查看>>
keepalived实现redis主备切换
查看>>
CentOS 5.5编译升级2.6.35.13内核完整笔记
查看>>
Python网络编程之socket
查看>>
Python实现Linux主机与手机快速分享文件
查看>>
ASA/PIX同一接口中转同区域流量测试(pix8.0)
查看>>
查看linux服务器的品牌和型号
查看>>
高可用结合gfs2,,实现集群文件系统以及集群逻辑卷。
查看>>
LVS/Tun 成功案例
查看>>
第十七章 apache 性能调优
查看>>
linux CentOS x64 里php源码编译出错参见情况及解决办法
查看>>
KindEditor在asp.net mvc4中使用
查看>>
【高级内部资料】.NET数据批量写入性能分析 第二篇
查看>>
MariaDB Window Functions窗口函数分组取TOP N记录
查看>>
Elasticsearch安装配置
查看>>
我父亲的新发明--玉米点播器
查看>>
企业如何避免肥胖
查看>>
DFS文件服务器迁移08R2-12R2
查看>>
F5 配置手册 -F5 BIG-IP 10.1-3-配置-网络
查看>>