
JAVA-线程
litengbin
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JAVA 创建一个线程的三种方式
多线程即在同一时间,可以做多件事情。 创建多线程有3种方式,分别是继承线程类,实现Runnable接口,匿名类线程概念首先要理解进程(Processor)和线程(Thread)的区别 进程:启动一个LOL.exe就叫一个进程。 接着又启动一个DOTA.exe,这叫两个进程。 线程:线程是在进程内部同时做的事情,比如在LOL里,有很多事情要同时做,比如"盖伦” 击杀“转载 2018-01-07 12:12:23 · 3261 阅读 · 0 评论 -
多线程 原子访问
原子性操作概念所谓的原子性操作即不可中断的操作,比如赋值操作 int i = 5; 原子性操作本身是线程安全的 但是 i++ 这个行为,事实上是有3个原子性操作组成的。步骤 1. 取 i 的值步骤 2. i + 1步骤 3. 把新的值赋予i这三个步骤,每一步都是一个原子操作,但是合在一起,就不是原子操作。就不是线程安全的。 换句话说,一个线程在步转载 2018-01-09 11:58:32 · 282 阅读 · 0 评论 -
互斥 同步 异步 并发 多线程的区别与联系
1. 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。其中两种并发关系分别是同步和互斥;2. 互斥:进程间相互排斥的使用临界资源的现象,就叫互斥。3. 同步:进程之间的关系不是相互排斥临界资源的关系,而是相互依赖的关系。进一步的说明:就是前一个进程的输出作为后一个进程的输入,当第一个进程没有输出时第二个进程转载 2018-01-09 11:01:25 · 600 阅读 · 0 评论 -
JAVA 如何开发一个自定义线程池
每一个线程的启动和结束都是比较消耗时间和占用资源的。 如果在系统中用到了很多的线程,大量的启动和结束动作会导致系统的性能变卡,响应变慢。 为了解决这个问题,引入线程池这种设计思想。 线程池的模式很像生产者消费者模式,消费的对象是一个一个的能够运行的任务线程池设计思路线程池的思路和生产者消费者模型是很接近的。1. 准备一个任务容器2. 一次转载 2018-01-09 11:11:22 · 2087 阅读 · 0 评论 -
JAVA 线程之间的交互 wait和notify
线程之间有交互通知的需求,考虑如下情况: 有两个线程,处理同一个英雄。 一个加血,一个减血。 减血的线程,发现血量=1,就停止减血,直到加血的线程为英雄加了血,才可以继续减血不好的解决方式故意设计减血线程频率更高,盖伦的血量迟早会到达1减血线程中使用while循环判断是否是1,如果是1就不停的循环,直到加血线程回复了血量这是不好的解决方式,因为会大量占用CPU,转载 2018-01-09 10:32:50 · 1303 阅读 · 0 评论 -
JAVA 演示多线程死锁
当业务比较复杂,多线程应用里有可能会发生死锁演示死锁1. 线程1 首先占有对象1,接着试图占有对象22. 线程2 首先占有对象2,接着试图占有对象13. 线程1 等待线程2释放对象24. 与此同时,线程2等待线程1释放对象1就会。。。一直等待下去,直到天荒地老,海枯石烂,山无棱 ,天地合。。。package multiplethread; import转载 2018-01-09 10:24:33 · 329 阅读 · 0 评论 -
常见的线程安全相关的面试题
HashMap和Hashtable的区别HashMap和Hashtable都实现了Map接口,都是键值对保存数据的方式区别1: HashMap可以存放 nullHashtable不能存放null区别2:HashMap不是线程安全的类Hashtable是线程安全的类StringBuffer和StringBuilder的区别StringBuffer 是线转载 2018-01-09 10:14:45 · 2837 阅读 · 1 评论 -
JAVA 多线程同步 synchronized
多线程的同步问题指的是多个线程同时修改一个数据的时候,可能导致的问题 多线程的问题,又叫Concurrency 问题演示同步问题假设盖伦有10000滴血,并且在基地里,同时又被对方多个英雄攻击就是有多个线程在减少盖伦的hp同时又有多个线程在回复盖伦的hp假设线程的数量是一样的,并且每次改变的值都是1,那么所有线程结束后,盖伦应该还是10000滴血。但是。。。转载 2018-01-08 18:42:39 · 311 阅读 · 0 评论 -
JAVA 常见的线程方法
sleep 当前线程暂停join 加入到当前线程中setPriority 线程优先级yield 临时暂停setDaemon 守护线程当前线程暂停Thread.sleep(1000); 表示当前线程暂停1000毫秒 ,其他线程不受影响 Thread.sleep(1000);转载 2018-01-08 12:23:06 · 299 阅读 · 0 评论 -
多线程 Lock对象
与synchronized类似的,lock也能够达到同步的效果回忆 synchronized 同步的方式首先回忆一下 synchronized 同步对象的方式当一个线程占用 synchronized 同步对象,其他线程就不能占用了,直到释放这个同步对象为止package multiplethread; import java.text.SimpleDat转载 2018-01-09 11:41:07 · 373 阅读 · 0 评论