![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
thread
Qgwperfect
这个作者很懒,什么都没留下…
展开
-
Thread中yield方法
转自 https://www.cnblogs.com/java-spring/p/8309931.html先上一段代码public class YieldExcemple { public static void main(String[] args) { Thread threada = new ThreadA(); Thread threa...转载 2018-12-21 13:52:13 · 450 阅读 · 0 评论 -
如何暴力的方式结束线程生命周期
主类代码:public class ThreadForceStop { private Thread executeThread; private boolean finished = false; public void execute(Runnable task) { executeThread = new Thread() { @Override pu...原创 2019-03-22 19:02:13 · 113 阅读 · 0 评论 -
如何优雅的方式结束线程生命周期
1,第一种方式 通过变量标记public class ThreadStopGraceful { private static class Worker extends Thread { private volatile boolean start = true; @Override public void run() { while (start) {...原创 2019-03-22 17:13:33 · 140 阅读 · 0 评论 -
java线程基础知识----java daemon线程
java线程是一个运用很广泛的重点知识,我们很有必要了解java的daemon线程.1.首先我们必须清楚的认识到java的线程分为两类: 用户线程和daemon线程 A.用户线程: 用户线程可以简单的理解为用户定义的线程,当然包括main线程(以前我错误的认为main线程也是一个daemon线程,但是慢慢的发现原来main线程不是,因为如果我再main线程中创建一个用户线程,并且打出日志...转载 2019-03-22 16:39:30 · 114 阅读 · 0 评论 -
线程生命周期图示
线程生命周期图:原创 2019-03-22 10:57:39 · 572 阅读 · 0 评论 -
通过观察者模式对线程状态进行监控示例
public interface LifeCycleListener { void onEvent(AbservableRunnable.RunnableEvent event);}public enum RunnableState { RUNNING, ERROR, DONE}public abstract class AbservableRunnable im...原创 2019-03-25 15:00:56 · 317 阅读 · 0 评论 -
ThreadLocal示例
@SuppressWarnings("unchecked")public class ThreadLocalComplexDemo { @SuppressWarnings("rawtypes") private final static ThreadLocal threadLocal = new ThreadLocal(); private static Random rando...原创 2019-03-21 18:13:31 · 252 阅读 · 0 评论 -
happens-before 规则
happens-before 规则:1,代码的执行顺序,编写在前面的发生在编写在后面的之前2,unlock必须发生在lock之后3,volatile修饰的变量,对一个变量的写操作先于对该变量的读操作4,传递规则,操作A先于B,操作B先于C,那么A肯定先于C5,线程启动规则,start方法肯定先于线程run6,线程中断规则,interrupt这个动作,必须发生在捕获动作之前7,对...原创 2019-03-21 17:28:34 · 100 阅读 · 0 评论 -
sleep和wait方法的区别
sleep和wait方法的区别1,sleep是Thread的方法,wait是Object的方法2,sleep不会释放锁,但是wait会释放锁,并且会添加到waiting queue3,sleep不需要同步,但是wait需要4,sleep不需要唤醒,但是wait需要import java.util.stream.Stream;public class DiffOfSleepA...原创 2019-03-21 16:16:54 · 516 阅读 · 0 评论 -
如何实现处理线程的返回值
1,主线程等待法:public class MainThreadWait implements Runnable{ private String value; @SuppressWarnings("static-access") @Override public void run() { try { Thread.currentThread().sleep(10000...原创 2019-03-20 23:14:33 · 167 阅读 · 0 评论 -
Thread和Runnable是什么关系
1,Thread是实现了Runnable接口的类,使得run支持多线程2,类是单一继承原则,推荐使用Runnable接口原创 2019-03-20 22:07:08 · 487 阅读 · 0 评论 -
java实现线程间通信---管道通信
管道通信管道流主要用来实现两个线程之间的二进制数据的传播,下面以PipedInputStream类和PipedOutputStream类为例,实现生产者-消费者:package test.pipe; import java.io.IOException; import java.io.PipedInputStream; import java.io.PipedOutputS...转载 2019-03-14 16:28:46 · 195 阅读 · 0 评论 -
线程死锁示例
代码如下:public class DeadLock { private OtherDeadLock otherDeadLock; private final Object LOCK = new Object(); public DeadLock(OtherDeadLock otherDeadLock) { this.otherDeadLock = otherDead...原创 2019-03-24 16:16:01 · 130 阅读 · 0 评论