
多线程
Kent Chiang
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
关于Thread.join()方法的理解
一、用法: main方法中调用其他线程的join方法 public static void main(String[] args) { ... Thread t1 = new Thread(runnable); t1.start(); t1.join(); ... } 二、源码解读: public final synchronized void join(long millis) throws InterruptedException { ... if (millis == 0原创 2021-12-29 15:36:05 · 347 阅读 · 0 评论 -
实现两个线程交替执行
比如线程1输出0,线程2输出0,线程1输出1,线程2输出1。 既然有先后顺序,优先想到和顺序有关的锁,ReenTrantLock的公平锁,等待时间最长的线程优先获取锁。 代码如下: public class AlternateDemo { public static void main(String[] args) { Task task = new Task(); Thread ta = new Thread(task); Thread tb...原创 2021-02-05 22:28:21 · 655 阅读 · 0 评论 -
Java线程间通信的同步问题、wait/notify使用
Java线程间通信简单来说就是多个线程同时操作同一个资源,比如一个线程设置了姓名、性别,另一个线程读取姓名、性别。 伴随而来的就是同步问题:比如线程a先设置了张三、男,后设置了李四、女,线程b要打印这些信息,由于多线程的随机性,a设置张三、男后,然后a又设置了李四,还未设置性别时,b这时候读取数据,独到的就是李四、男,这样结果就不对了。解决方法就是加锁,保证a在赋值时,b没有读取;b读取时,a没原创 2017-12-09 17:25:03 · 336 阅读 · 0 评论 -
线程知多少(一)线程实现数据共享的方式
一、继承Thread 1、使用static关键字,使被共享的数据变为类变量,这样即使创建多个Thread对象,也可以使多个Thread对象共用类变量 package demo.threadtest; public class TicketsThread extends Thread { private static int tickets = 500; public void ru...原创 2019-04-07 17:08:00 · 428 阅读 · 1 评论 -
彻底理解ThreadLocal
彻底理解ThreadLocal 参考:http://www.iteye.com/topic/103804 http://www.iteye.com/topic/777716 源码分析 为了解释ThreadLocal类的工作原理,必须同时介绍与其工作甚密的其他几个类 ThreadLocalMap(内部类) Thread 首先,在Thread类中有一行: /...转载 2019-05-15 19:10:50 · 241 阅读 · 0 评论