多线程之间通讯

1.什么是多线程之间通讯?
多个线程对同一个资源(共享资源),每个线程对共享资源的动作
不同,操作不同。
多线程通讯的生产者与消费者,--消息中间件mq。
可见性不具备原子性,线程是不安全的。


可见性不具备原子性,线程不安全。
解决办法:生产者线程生产一个,消费者线程立马消费。
生产者没有任何生产,消费者不能读。
消费者,没有消费完,生产者不能继续生产。
wait的作用:让当前程序从运行状态变为休眠状态。
notify:让当前线程从休眠状态变为运行状态 缓冲
同步才能使用。而且要是同一把锁的资源。
wait与sleep区别是什么?
wait用于同步中用来释放锁的资源。
wait需要notify才能从休眠状态变为运行状态
sleep:他是不会释放锁的资源。
sleep:时间到期,从休眠状态变为运行状态。
相同都是做休眠。


jdk1.5Lock锁?
需要手动获取锁,和手动释放锁。
Lock锁与synchronized同步锁区别?
Lock属于手动挡,手动开启上锁,手动释放锁。
灵活性高。
Lock锁非阻塞获取锁,当前线程尝试获取锁。
多线程并发(Thread)与网站并发
网站并发:多个请求同时访问一台服务器。


怎么去停止线程?
stop
方法好吗?
为什么stop方法不好?
不安全。
设计怎么停止线程?
思路:
1.使用退出标志,使线程正常退出,也就是run方法完成后线程
终止。
2.使用stop方法强行终止线程
3.使用interrupt方法中断线程。

ThreadLocal?
Thread Local提高一个线程的局部变量,访问某个线程拥有自己的局部
变量。
为每一个线程提供一个局部变量。
ThreadLocal为每个线程提供独立的变量副本,不影响其他线程
实现原理:
通过Map集合
Map.put("当前线程",值);


进程与线程的区别?
进程是线程的集合,线程是进程的执行路径。
什么是线程安全?
多线程之间同步?
join
java内存模型
原之类+可见性
wait,notify,守护线程与非守护线程
停止线程
死锁
多线程运行状态
lock
Thread Local
线程安全问题
sleep


猜你喜欢

转载自blog.csdn.net/qq_38357267/article/details/80972858