多线程
xiaosen-L
欢迎关注微信公众号:xiaosen_javashare
展开
-
Java多线程学习(六)——Lock的使用
锁是用于通过多个线程控制对共享资源的访问的工具。通常,锁提供对共享资源的独占访问:一次只能有一个线程可以获取锁,并且对共享资源的所有访问都要求首先获取锁。 但是,一些锁可能允许并发访问共享资源,如ReadWriteLock的读写锁。Java5之后并发包中新增了Lock接口以及相关实现类来实现锁功能。 虽然synchronized方法和语句的范围机制使得使用监视器锁更容易编程,并且有助于避免涉及锁的...原创 2019-11-08 07:02:38 · 145 阅读 · 0 评论 -
Java多线程学习(一)
本文章首发微信公众号:IT笔记分享 欢迎扫码关注我原创 2019-03-06 11:04:00 · 103 阅读 · 0 评论 -
Java多线程学习(二)——Thread一些方法
本文章首发微信公众号:IT笔记分享 欢迎扫码关注我原创 2019-03-17 17:45:30 · 184 阅读 · 0 评论 -
Java多线程学习(三)——synchronized(上)
在前两节的《Java多线程学习(一)——多线程基础》和《Java多线程学习(二)——Thread类的方法介绍》中我们接触了线程安全和非线程安全的概念,这节就来学习一下synchronized关键字的使用。 1、变量的线程安全性 “非线程安全”问题存在于“实例变量中”,如果是方法内部私有的变量,则不存在“非线程安全”的问题。如果两个线程同时操作对象中的实例变量,会出现非线程安全的问题,解决方法是在方...原创 2019-06-26 07:59:14 · 121 阅读 · 0 评论 -
Java多线程学习(三)——synchronized(下)
synchronized同步语句块 用关键字synchronized声明方法是有弊端的。比如线程A调用同步方法执行一个长时间任务,那么线程B就要等较长时间才能调用。 下面看一个例子: public class Task { private String getData1; private String getData2; public synchronized voi...原创 2019-06-27 08:26:09 · 141 阅读 · 0 评论 -
Java多线程学习(四)——volatile关键字
volatile关键字 当用volatile关键字声明变量的时候,就等于告诉虚拟机,这个变量极有可能被某些程序或者线程修改,为了保证比那辆被修改后应用程序范围内的所有线程可以看到这个改动,虚拟机必须采用一些方法保证这个变量的可见性。 volatile与死循环 public class PrintString { private boolean isContinue = true; ...原创 2019-06-28 07:39:13 · 124 阅读 · 0 评论 -
Java多线程学习(五)——等待通知机制
等待通知机制的实现 方法wait()的作用是使当前线程进行等待,wait()方法是Object类的方法,该方法用来将当前线程放到“预执行队列”,并在wait()所在的代码处停止执行,直到接到通知或中断为止。只能在同步方法或同步快中使用wait()方法,执行wait()后,当前线程释放锁。 方法notify()也要在同步方法或同步快中调用,在调用前也必须获得该对象的的对象级别锁。该方法用来通知那些可...原创 2019-09-11 08:31:49 · 164 阅读 · 0 评论