![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java多线程
cjwdemo
喜欢编程
展开
-
java 多线程学习之创建线程
package learn.thread;public class Demo1 { public static String stemp = null; public static void main(String[] args) { // 获取运行线程名称 stemp = Thread.currentThread().getName();原创 2017-05-25 11:49:48 · 190 阅读 · 0 评论 -
java多线程学习之ReentrantReadWriteLock(二)
package learn.thread;import java.util.concurrent.locks.ReentrantReadWriteLock;/* ReentrantReadWriteLock,比ReentrantLock更强大的锁,读写,写读互斥 */ public class Demo17 { static ReentrantReadWriteLock lock = new原创 2017-05-26 12:15:23 · 285 阅读 · 0 评论 -
java多线程学习之ReentrantReadWriteLock(一)
package learn.thread;import java.util.concurrent.locks.ReentrantReadWriteLock;/* ReentrantReadWriteLock,比ReentrantLock更强大的锁,读读共享,只有读读是异步,其他读写,写读,写写都是互斥 */ public class Demo16 { static ReentrantRead原创 2017-05-26 12:13:46 · 234 阅读 · 0 评论 -
java多线程学习之Condition,实现唤醒指定的部分线程
package learn.thread;import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock;/* Condition,实现唤醒指定的部分线程 */ public class Demo1原创 2017-05-26 12:11:43 · 5454 阅读 · 1 评论 -
java线程学习之Condition
package learn.thread;import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock;/* Condition,和ReentrantLock配合使用提供唤醒线程和暂停线程功能 *原创 2017-05-26 12:10:21 · 291 阅读 · 0 评论 -
java多线程学习之ReentrantLock
package learn.thread;import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock;/* ReentrantLock,比synchronized轻量灵活强大的锁 */ public class Demo13 extends Thread { @Override原创 2017-05-25 15:21:16 · 715 阅读 · 0 评论 -
java多线程学习之通过ThreadLocal实现每个线程拥有自己的变量
package learn.thread;/* * ThreadLocal实现线程拥有自己的变量值 */ public class Demo12 { public static ThreadLocal tl = new ThreadLocal(); public static void main(String[] args) { if (tl.get() == nu原创 2017-05-25 12:33:29 · 584 阅读 · 0 评论 -
java多线程学习之使用join()方法实现线程插队
package learn.thread;/* * join() 线程插队方法 */ public class Demo11 { public static int i = 0; public static void main(String[] args) { Thread t1 = new Thread() { @Override原创 2017-05-25 12:31:31 · 1389 阅读 · 0 评论 -
java多线程学习之通过轮询实现线程通信
package learn.thread;import java.util.ArrayList; import java.util.List;/* * 线程通信-轮询方式 */ public class Demo10 { public static List<Object> os = new ArrayList<Object>(); public static void main(S原创 2017-05-25 12:29:07 · 4214 阅读 · 0 评论 -
java多线程学习之线程通信-wait()等待 notify()唤醒
package learn.thread;import java.util.ArrayList; import java.util.List;import org.omg.Messaging.SyncScopeHelper;/* * 线程通信-wait()等待 notify()唤醒 */ public class Demo9 { public static List<Object> os原创 2017-05-25 12:25:01 · 400 阅读 · 0 评论 -
java多线程学习之volatile
package learn.thread;/* * volatile关键字,被volatile修饰的变量 */ public class Demo8 extends Thread { public volatile static boolean open = true; public volatile static int num = 0; // public boole原创 2017-05-25 12:23:23 · 226 阅读 · 0 评论 -
java多线程学习之停止休眠中的线程问题
package learn.thread;/* * 线程停止方法方法 -使休眠中的线程进入停止状态 * 报这个错,然后停止线程java.lang.InterruptedException: sleep interrupted * 如果先设置停止状态后再休眠,会休眠后在退出 */ public class Demo7 extends Thread { public Demo7(Strin原创 2017-05-25 12:02:48 · 746 阅读 · 0 评论 -
java多线程学习之状态停止法
package learn.thread;/* * 线程停止方法方法 -状态停止法 * 结合return 能达到立即停止的效果 */ public class Demo6 extends Thread { public Demo6(String name) { super(name); } String name; @Override publ原创 2017-05-25 12:01:21 · 180 阅读 · 0 评论 -
java多线程学习之异常停止方法
package learn.thread;/* * 线程停止方法方法 -异常停止法 */ public class Demo5 extends Thread { public Demo5(String name) { super(name); } String name; @Override public void run() {原创 2017-05-25 12:00:29 · 307 阅读 · 0 评论 -
java多线程学习之通过synchronized加锁解决线程安全问题
商品类package learn.thread;public class Commodity { public static int cNum = 5; // 购买并返回剩余数 public static int buyCommodity() { cNum -= 1; return getcNum(); } public stati原创 2017-05-25 11:58:34 · 408 阅读 · 0 评论 -
java多线程学习之线程安全问题
package learn.thread;/* * 线程访问变量在没锁情况下会有线程安全问题 */ public class Demo3 extends Thread { public Demo3(String name) { super(name); } // 线程共享数据 String name; @Override public vo原创 2017-05-25 11:55:25 · 317 阅读 · 0 评论 -
java多线程学习之启动顺序不等于执行顺序
package learn.thread;/* * 线程start()方法执行顺序不等于启动顺序 */ public class Demo2 extends Thread { public Demo2(int i) { super(); this.i = i; } private int i; @Override public原创 2017-05-25 11:53:02 · 1197 阅读 · 1 评论 -
java多线程学习之原子类
package learn.thread;import java.util.concurrent.atomic.AtomicInteger;/* java原子类,通过Integer原子类进行减一并返回自身操作,免去加锁操作 (变量在多线程环境下,例如减1操作是有三步的,每一步为一个原子操作, 分取值,加一,再赋值回去,使用原子类的方法则把这3步实现为一个原子操作) */ public class原创 2017-05-26 12:16:35 · 287 阅读 · 0 评论