线程
jwt_
这个作者很懒,什么都没留下…
展开
-
java线程池运行流程
用户线程(ULT):不需要内核支持而在用户程序中实现线程,不依赖操作系统核心,应用进程利用线程库提供创建、同步、调度和管理线程得函数控制用户线程。另外,用户线程是由应用进程利用线程库创建和管理,不依赖操作系统核心。不需要用户态/核心态切换,速度快,操作系统内核不知道多线程得存在,因此一个线程阻塞,将使得整个进程阻塞。(操作系统感知不到内部创建的多个线程,当一个线程执行的时候,操作系统不会分配另外的...原创 2020-04-20 13:53:58 · 955 阅读 · 0 评论 -
(闭锁)计数器、回环栅栏、信号量
import java.util.concurrent.CountDownLatch;/** * (闭锁)计数器,利用它可以实现类似计数器的功能, 比如有一个任务A,他要等到4个任务执行完毕之后才能执行,此时利用CountDownlatch可以实现 * @author jwt * @date 2019年11月16日 */public class MyCountDownlatch {...原创 2019-11-16 12:58:40 · 282 阅读 · 0 评论 -
实例变量与线程安全
public class MyThread extends Thread{ private int count = 5; @Override public void run() { super.run(); count -- ; System.out.println(this.currentThread().getName()+",count = "+count); }}...原创 2019-03-28 19:42:34 · 279 阅读 · 0 评论 -
对象及变量并发访问-脏读
当多个线程调用同一个方法时,为了避免数据出现交叉的情况,使用synchronized关键字进行同步。虽然赋值时进行了同步,但是在取值时有可能出现一些意想不到的意外,这种情况就是脏读。发生脏读的情况就是在读取实例变量时,此值已经被其他线程更改过了。public class PublicVar { private String username = "a"; private String p...原创 2019-03-28 19:56:57 · 289 阅读 · 0 评论 -
多线程死锁
不同线程都在等待根本不可能被释放的锁,从而导致所有任务都无法继续。public class TestThread implements Runnable{ private String username; public Object lock1= new Object(); public Object lock2 = new Object(); public void setUsern...原创 2019-04-08 19:03:29 · 202 阅读 · 0 评论 -
线程等待/通知机制的实现
方法wait()使当前线程等待,释放锁,并且在wait方法处停止执行,直到接到通知或被中断为止;调用wai()方法前必须获得该对象的对象级别锁,如果调用wait()时没有适当的锁,抛出IllegalMonitorStateException。notify()调用时也必须获得该对象的对象级别锁,若没有,抛出IllegalMonitorStateException;notify()方法用来通知...原创 2019-04-16 19:11:18 · 256 阅读 · 0 评论 -
SimpleDateFormat非线程安全
SimpleDateFormat类是非线程安全的public class MyThread extends Thread{ private SimpleDateFormat sdf; private String dateString; public MyThread(SimpleDateFormat sdf,String dateString){ this.sdf = sdf;...原创 2019-05-13 19:26:20 · 178 阅读 · 0 评论 -
生产者消费者
首先我要记录一下锁的相关知识点:x可以是this也可以是非this1 当多个线程同时执行synchronized(x){}同步代码块时呈同步效果2 当其它线程执行x对象中synchronized同步方法时呈同步效果3 当其它线程执行x对象方法里面的synchronized(this)代码块时也呈同步效果。如果其它线程调用x对象里的非synchronized方法时,还是呈异步效果。1 s...原创 2019-09-04 17:14:19 · 162 阅读 · 0 评论 -
阻塞队列生产者消费者
package com.reentrant;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class ArrayBlockingQueue<E> ...原创 2019-09-19 18:47:02 · 141 阅读 · 0 评论