首页 > 代码库 > Java多线程总结
Java多线程总结
对Java多线程方面的东西看了很多次,每次都是浅浅的、草草的看两眼,到用的时候又是脑子一片模糊,不清楚多线程到底是怎么样一种原理,今天就专门挑时间梳理了下多线程方面所涉及到的一些东东,总结一些重要的点,如下:
1. 在Java中,每次程序运行至少会启动2个线程,一个是main()主线程,另一个是垃圾收集线程。
2. 包含在main()主线程中线程是子线程,主线程有可能在子线程结束前结束,并且子线程不受影响,不会因为主线程的结束而结束。
如果要强制子线程先完成,可以在适当的地方加入代码:a.join() ,其中a是线程实例名。
3. 线程之间,并不是优先级越高就先执行,谁先执行还是取决于谁先去的CPU的资源。main()主线程的优先级为5。
4. 有效利用多线程的关键是,理解程序是并发执行而不是串行执行的。例如程序中有两个子系统需要并发执行(交互进行),这就需要利用多线程编程。
5. 通过对多线程的使用,可以编写出非常高效的程序。不过请注意,如果创建太多的线程,程序执行的效率实际上是降低了,而不是提升了。因为有上下文切换时间的开销。(请记住,上下文的切换开销也很重要,如果你创建了太多的线程,CPU花费在上下文的切换的时间将多于执行程序的时间!)
6.当多个线程共享一个资源的时候需要进行同步,但是过多的同步可能导致死锁。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。