
多线程
大房子爱生活
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
线程中同步方法和同步代码块的区别
1. 为什么要使用同步: java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用, 从而保证了该变量的唯一性和准确性。 2.同步方法: 即有synchronized关键字修饰的方法 由于 Java的每个对象都会有一个内置锁,当用此关键字修饰方法时,内置锁会...原创 2019-03-27 14:11:20 · 1470 阅读 · 1 评论 -
Java中产生死锁的原因以及死锁的解除
1. 产生死锁的主要原因: 因为系统资源不足 进程运行推进的顺序不合适 资源分配不当等 如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁,其次进程运行推进顺序与速度的不同也可能产生死锁 2. 产生死锁的四个必要条件: 互斥条件:一个资源每次只能被一个进程使用 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放 不剥夺条...原创 2019-03-27 14:30:45 · 426 阅读 · 0 评论 -
Java中的 Iterator 迭代器
迭代器是一种设计模式,它是一个对象,可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构 1. Iterator 接口中定义的几个常用方法: next():获取序列中的下一个元素 hasNext():检查序列中是否还有元素 remove():将迭代器返新返回的元素删除 2. 使用 Iterator 迭代器遍历集合中的元素: public static void main(Strin...原创 2019-03-27 15:44:56 · 240 阅读 · 0 评论 -
Thread 类中的:sleep(),join(),wait(),yield()区别详解
1. sleep(): Thread.sleep(1000); 在指定时间内让当前执行的线程暂停执行一段时间,让其他线程有机会继续执行,但不会释放对象锁,也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据,不推荐使用,sleep() 使当前线程进入阻塞状态,在指定时间不会执行。 2. wait(): 对象的方法,会释放对象锁 wait()和notify()、notif...原创 2019-03-27 17:34:12 · 3160 阅读 · 0 评论