摘要: 一 .概述 在前面,我们说到了java提供了synchronized关键词帮助我们实现一个可重入的独占锁的概念. 本节,我们讨论这个关键词的使用. 二 .使用方式 synchronized关键词可以出现在三个地方 [1]静态方法上 [2]实例方法上 [3]同步代码块上 从本质上说,我们其实没有必要分 阅读全文
posted @ 2018-08-21 21:22 最爱五仁月饼 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 一 .概述 线程依赖于进程分配资源,因此线程对变量的操作就变得更加的简单,我们可能会使用不同的线程对同一个变量进行操作,这就可能代理线程的安全性问题. 线程的安全性问题归根结底就是正确性问题,如果我们无法对变量进行原子性操作,那么变量就可能出现不一致的状态,因此我们的程序的结果就会出现问题. 在ja 阅读全文
posted @ 2018-08-21 21:10 最爱五仁月饼 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 一 .概述 在前面,我们重点说明了几个Thread的API,本节我们将一些需要注意的APi进行一下分析. 二 .sleep()方法 该方法会让线程进行睡眠,当时间片过去之后,线程就会进入到runnable状态. 当然,这个方法是可以被打断的. 下面演示一下这个方法: 上面的例子之中,我们让线程睡眠了 阅读全文
posted @ 2018-08-21 19:19 最爱五仁月饼 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 一 .概述 join()方法可以让一个线程等待另外一个线程运行结束,同时join()方法具有可打断性,也就是说,在一定的时间点,线程可以不再等待继续执行. 下面我们首先看一下这个例子. 我们发现,执行的结果表明,主线程是在子线程完全执行完毕才会执行的. 通过这个例子,我们可以知道,主线程是会等到子线 阅读全文
posted @ 2018-08-21 19:09 最爱五仁月饼 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 一 .概述 在前面我们说到过守护线程的特点,就是守护线程的存在必须要有一个非守护线程的存在. 利用这个特性,我们常常使用守护线程做垃圾回收,心跳检测的后台的服务. 本节,我们利用守护线程实现一个线程终结的方法. 二 .利用守护线程的特性,实现线程的终结 我们运行上面的代码,主线程在休眠3秒之后终结, 阅读全文
posted @ 2018-08-21 13:18 最爱五仁月饼 阅读(90) 评论(0) 推荐(0) 编辑