public class ConcurrentHashMapDemo {
// 定义一个静态的HashMap集合,只有一个容器。
public static Map<String,String> map = new HashMap<>();
//public static Map<String,String> map = new Hashtable<>();
//public static Map<String,String> map = new ConcurrentHashMap<>();
public static void main(String[] args) throws Exception {
// HashMap线程不安全演示。
// 需求:多个线程同时往HashMap容器中存入数据会出现安全问题。
// 具体需求:提供2个线程分别给map集合加入50万个数据!
Runnable target = new AddMapDataThread();
Thread t1 = new Thread(target,"线程1");
Thread t2 = new Thread(target,"线程2");
t1.start();//让t1跑完,主线程不能抢t1的cpu,但是t2抢t1的cpu
t2.start();//让t2跑完,主线程不能抢t1的cpu,但是t1抢t2的cpu
t1.join();
t2.join();
//休息10秒,确保两个线程执行完毕
//Thread.sleep(1000 * 4);
//打印集合大小
System.out.println("Map大小:" + map.size());
}
}
class AddMapDataThread implements Runnable{
@Override
public void run() {
for(int i = 1 ; i <= 500000 ; i++ ){
ConcurrentHashMapDemo.map.put(Thread.currentThread().getName()+"键:"+i ,"值"+i);
}
}
}
public class CountDownLatchDemo {
public static void main(String[] args) {
//创建1个计数器:用来控制 A , B线程的执行流程的。
CountDownLatch down = new CountDownLatch(1);
new ThreadA(down).start();
new ThreadB(down).start();
}
}
class ThreadA extends Thread{
private CountDownLatch down;
public ThreadA(CountDownLatch down){
this.down = down;
}
@Override
public void run() {
System.out.println("A");
try {
down.await(); // A线程你进入等待,让B线程执行自己!
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("C");
}
}
class ThreadB extends Thread{
private CountDownLatch down;
public ThreadB(CountDownLatch down){
this.down = down;
}
@Override
public void run() {
System.out.println("B");
down.countDown(); // 这里相当于是-1,代表自己执行完毕了。A线程被唤醒!!
}
}
逆风TO 发表于 2020-4-20 10:00
感谢分享哦~
大安 发表于 2020-4-20 11:04
感谢分享哦~
hongping 发表于 2020-4-20 11:21
感谢分享哦~
hongping 发表于 2020-4-20 11:21
感谢分享哦~
大安 发表于 2020-4-20 11:04
感谢分享哦~
大安 发表于 2020-4-20 11:05
感谢分享哦~
半个程序员 发表于 2020-5-4 13:46
感谢分享哦~
咨询部王丹 发表于 2020-5-6 09:57
感谢分享6666666666666
大安 发表于 2020-5-6 10:02
感谢分享哦~
daoqin 发表于 2020-5-6 09:33
感谢分享~加油哦~
mydorling11 发表于 2020-5-5 11:20
66666666666666666666666666666666666666666
hongping 发表于 2020-5-5 10:26
666666666666666
mydorling11 发表于 2020-5-5 11:20
66666666666666666666666666666666666666666
hongping 发表于 2020-5-5 10:26
666666666666666
1467584 发表于 2020-5-5 15:28
66666666666666666666
哦嗨呦 发表于 2020-5-4 16:55
好人一生平安
逆风TO 发表于 2020-5-5 09:48
感谢分享呀~
逆风TO 发表于 2020-5-11 17:40
努力呀,加油呀
逆风TO 发表于 2020-5-11 17:40
努力呀,加油呀
逆风TO 发表于 2020-5-11 17:40
努力呀,加油呀
逆风TO 发表于 2020-5-11 17:40
努力呀,加油呀
逆风TO 发表于 2020-5-11 17:42
努力呀,加油呀
逆风TO 发表于 2020-5-11 17:40
努力呀,加油呀
逆风TO 发表于 2020-5-11 17:40
努力呀,加油呀
半个程序员 发表于 2020-5-4 13:46
感谢分享哦~
yujq 发表于 2020-5-5 21:06
66666666666666666
daoqin 发表于 2020-5-6 09:33
感谢分享~加油哦~
咨询部王丹 发表于 2020-5-6 09:57
感谢分享6666666666666
yujq 发表于 2020-5-5 21:06
66666666666666666
hongping 发表于 2020-5-5 10:05
感谢分享呀~
哦嗨呦 发表于 2020-5-4 16:55
好人一生平安
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |