java多线程编程核心技术笔记一

线程概念:

线程可以理解为进程中独立运行的子任务。

线程的启动:

Thread.java类中的start()方法通知“线程规划器”此线程已经准备就绪,等待调用线程对象的run()方法。这个过程其实就是让系统安排一个时间来调用Thread中的run()方法,也就是使线程得到运行,启动线程,具有异步执行的效果。如果直接调用代码thread.run()就不是异步执行了,而是同步,那么此线程对象并不会交给“线程规划器”来进行处理,而是由main主线程来直接调用run()方法,也就是必须等run()方法中的代码执行完后才可以执行后面的代码。

synchronized关键字:

synchronized可以在任意对象及方法上加锁,而加锁的这段代码称为“互斥区”或“临界区”。当一个线程想要执行同步方法里面的代码时,线程首先尝试去拿这把锁,如果能够拿到这把锁,那么这个线程就可以synchronize里面的代码。如果不能拿到这把锁,那么这个线程就会不断地尝试拿这把锁,直到能够拿到为止,而且可能有多个线程同时去争抢这把锁。

非线程安全:

非线程安全主要是指多个线程对同一个对象中的同一个实例变量进行操作时会出现值被更改、值不同步的情况,进而影响程序的执行流程。

守护线程:

在java线程中有两种线程:用户线程和守护线程。守护线程是一种特殊线程,当进程中不存在非守护线程了,则守护线程会自动销毁,典型的守护线程就是垃圾回收线程(GC)。java虚拟机中,只有当最后一个非守护线程结束时,垃圾回收线程才会随着JVM一起结束工作。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 文章来源:http://www.54tianzhisheng.cn/2017/06/04/Java-Thread/...
    beneke阅读 1,538评论 0 1
  • 本文主要讲了java中多线程的使用方法、线程同步、线程数据传递、线程状态及相应的一些线程函数用法、概述等。 首先讲...
    李欣阳阅读 2,509评论 1 15
  • 蒙蒙浓浓的睁开眼,脑海里面还是昨天的自己,仿佛自己没有踏出学校的大门,渐渐地,清醒了,回到了现实,听见的是起床闹钟...
    兮颜时光阅读 364评论 0 0
  • 很小的时候就有当科学家的想法,觉得科学家很酷。为什么酷呢?当时还说不上来。最近想到,其实科学家就是现代社会的先知。...
    星所在阅读 347评论 0 0
  • 从西宁启程的第一站是塔尔寺,原本并不打算去看寺庙,但是在出发前,一友人托我帮他带一个塔尔寺的转经轮,本想拒绝,后来...
    枫影雨呢阅读 747评论 0 1