上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 43 下一页
摘要: ```java import java.util.Random; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent. 阅读全文
posted @ 2019-08-23 16:30 fly_bk 阅读(166) 评论(0) 推荐(0) 编辑
摘要: Semaphore是一种基于计数的信号量。它可以设定一个阈值,基于此,多个线程竞争获取许可信号,做自己的申请后归还,超过阈值后,线程申请许可信号将会被阻塞。Semaphore可以用来构建一些对象池,资源池之类的,比如数据库连接池,我们也可以创建计数为1的Semaphore,将其作为一种类似互斥锁的机 阅读全文
posted @ 2019-08-23 15:38 fly_bk 阅读(179) 评论(0) 推荐(0) 编辑
摘要: ```java import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; /** * 与重入锁相关联的Condition */ public class ConditionDemo implements Runnable{ public static Reentrant 阅读全文
posted @ 2019-08-21 15:03 fly_bk 阅读(105) 评论(0) 推荐(0) 编辑
摘要: ```java import java.util.concurrent.locks.ReentrantLock; / 重入锁 ReenterLock 一个线程允许连续获得同一把锁,注意:必须释放相同次数,释放次数多,会异常,少了相当于线程还持有这个锁,其他线程无法进入临界区 需要手动指定何时加锁何时 阅读全文
posted @ 2019-08-21 14:36 fly_bk 阅读(706) 评论(0) 推荐(0) 编辑
摘要: ```java import java.util.ArrayList; import java.util.Vector; / 并发下的ArrayList / public class ArrayListMultiThread { static ArrayList arrayList = new Ar 阅读全文
posted @ 2019-08-21 10:48 fly_bk 阅读(673) 评论(0) 推荐(0) 编辑
摘要: 同步的前提: 1. 必须要有两个或者两个以上的线程 2. 必须是多个线程使用同一个锁 3. 必须保证同步中只能有一个线程在运行 好处:解决了多线程的安全问题 弊端:多个线程需要判断锁,较为消耗资源、抢锁的资源。 java import java.util.ArrayList; import java 阅读全文
posted @ 2019-08-20 17:22 fly_bk 阅读(136) 评论(0) 推荐(0) 编辑
摘要: ```java /** * 优先级 */ public class PriorityDemo { public static class HightPriority extends Thread{ static int count = 0; @Override public void run() { while (true){ synchronized (PriorityDemo.class){ 阅读全文
posted @ 2019-08-20 16:30 fly_bk 阅读(371) 评论(0) 推荐(0) 编辑
摘要: ```java public class ThreadGroupDemo implements Runnable{ public static void main(String[] args){ //建立一个名为"GroupName"的线程组 ThreadGroup group = new ThreadGroup("GroupName"); //将T1,T2两个线程加入组中 Thread thre 阅读全文
posted @ 2019-08-20 16:10 fly_bk 阅读(175) 评论(0) 推荐(0) 编辑
摘要: ```java /** * 数据不一致问题 * stop */ public class StopDemo { public static Student student = new Student(); public static class Student{ private int id; private String name; public Student() { id = 0; name 阅读全文
posted @ 2019-08-19 16:45 fly_bk 阅读(196) 评论(0) 推荐(0) 编辑
摘要: ```java /** * 原子性:指一个操作是不可中断的,即使在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰 * long型数据在32位的系统中的读写不是原子性的(long有64位) * 注意:在32位虚拟机下执行,会输出信息 */ public class MultiTheadLong { public static long t = 0; publi... 阅读全文
posted @ 2019-08-19 15:39 fly_bk 阅读(237) 评论(0) 推荐(0) 编辑
上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 43 下一页