
多线程
cg_Amaz1ng
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
volatile多线程中一定write优先于read吗?
不一定。如下测试代码:int a = 0;volatile int b = 0;@Testpublic void testVolatile() throws InterruptedException { Thread thread1 = new Thread(() -> sleepAndCount()); Thread thread2 = new Thread...原创 2019-10-16 16:39:02 · 228 阅读 · 0 评论 -
happens-before是什么?
https://blog.youkuaiyun.com/zjw_mzone/article/details/83999316https://blog.youkuaiyun.com/qqqqq1993qqqqq/article/details/75285899happens-before的规则1)程序顺序规则:一个线程中的每个操作,happens-before于该线程中的任意后续操作。2)监视器锁规则:对一个...转载 2019-10-16 15:25:29 · 235 阅读 · 0 评论 -
Java线程状态预览
Java线程有五个状态:就绪(刚创建的时候),运行中(RUNNING),限时等待中(TIMED_WAITING),等待中(WAITING),阻塞(BLOCKED)以下代码模拟线程的各个情况(针对TIMED_WAITING,WAITING和BLOCKED)public class ThreadStatusDemo { public static void main(Strin...原创 2019-08-22 15:02:00 · 237 阅读 · 0 评论 -
NIO和BIO
https://www.jianshu.com/p/ef418ccf2f7d转载 2019-07-24 09:48:32 · 162 阅读 · 0 评论 -
BIO多线程编程
package com.dashuf.caes.job.batch;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java...原创 2019-07-19 11:07:01 · 271 阅读 · 0 评论 -
synchronized底层原理实现
https://www.jianshu.com/p/e62fa839aa41转载 2019-06-12 17:07:25 · 1404 阅读 · 0 评论 -
volatile关键字
线程安全(上)--彻底搞懂volatile关键字转载 2019-06-12 15:57:39 · 176 阅读 · 0 评论 -
Object的 wait 和 notify 和 notifyAll 方法
这三个方法用于线程同步方法内:1、wait可以让当前线程释放持有的锁,并让线程处于wait状态2、notify随机唤醒之前持有该锁对象的处于wait状态的线程,让其加入锁的竞争(不会马上获得锁)3、notifyAll唤醒所有的之前持有该锁对象的处于wait状态的线程,让其加入锁的竞争(不会马上获得锁)所谓唤醒线程,另一种解释可以说是将线程由等待池移动到锁池,notifyAll调用...原创 2019-06-12 15:35:27 · 217 阅读 · 0 评论 -
线程死锁
线程死锁的后果:被锁住的所有线程一直卡在那里,既不释放又不执行完。发生线程死锁的条件:多线程同时执行 至少两把锁 A方法中锁的顺序与B方法中的锁的顺序不同举个栗子:public class LockDemo{ /** * 两把锁 */ private static final Object SYNCHRONIZED_O...原创 2019-06-05 16:24:02 · 188 阅读 · 0 评论 -
Java同步代码块
什么是同步代码块:同步代码块是共用同一把锁的代码块,使用同步代码块可以实现两块代码在执行过程中互斥。即执行代码块A的时候不执行代码块B,执行代码块B的时候不执行代码块A。实现方法:使用静态对象锁。private static final Object SYNCHRONIZED_OBJECT = new Object();举个栗子:public class L...原创 2019-06-05 14:36:23 · 1279 阅读 · 0 评论 -
synchronized(this)和synchronized(A.class)
synchronized(this) 只能锁当前对象 synchronized(A.class) 锁类,对类的所有实例生效public class LockDemo{ public void method1() { synchronized (this) { System.out.println("method1 start"); ...原创 2019-06-05 15:56:34 · 385 阅读 · 0 评论 -
java cas算法实现乐观锁 (Compare and Swap 比较并交换)
https://blog.youkuaiyun.com/tiandao321/article/details/80811103java cas算法实现乐观锁 (Compare and Swap 比较并交换)原创 2019-05-04 17:10:48 · 254 阅读 · 0 评论 -
Future.cancel()的特殊情形
阻塞主线程执行本线程有两种方式:1、使用future.get()2、使用thread.join()执行中的阻塞线程可以使用future.cancel()来取消,注意有一种特殊情形无法取消: @Test public void testFutureTask() { ExecutorService executorService = Executo...原创 2019-05-04 16:35:35 · 871 阅读 · 0 评论 -
Runnable,Callable,ExecutorService,Future,FutureTask联系和区别
1、Runnable是线程Thread执行的对象,是线程执行的核心逻辑,核心方法run无法抛出异常,也没有返回值。2、Callable不能作为Thread的构造函数参数,Callable只能被提交到线程池执行,核心方法call可以抛出异常,有返回值。3、ExecutorService是线程池的通用接口,可以看成一个线程池。Runnable和Callable可以被提交到线程池来执行,通常是调...原创 2019-05-04 15:49:48 · 378 阅读 · 0 评论 -
【线程】Java让线程执行也具有返回值
Thread线程的run方法是没有返回值的。/** * If this thread was constructed using a separate * <code>Runnable</code> run object, then that * <code>Runnable</code> object's &l...原创 2019-05-02 16:04:10 · 377 阅读 · 0 评论 -
【线程】JVM和守护线程
JVM(Java虚拟机)默认有很多守护线程,比如垃圾回收线程。什么是守护线程,Java注释有:The Java Virtual Machine exits when the only threads running are all daemon threads.简单翻译一下:线程分为守护线程(Daemon Thread)和用户线程(User Thread),当JVM中运行的线程...原创 2019-05-02 15:00:17 · 463 阅读 · 0 评论