#多线程
JohnsonHtao
公号:Johnsontao,欢迎关注交流
展开
-
处理线程同步出现的数据不对等问题,以及加入锁机制后的问题
在多线程中处理安全问题。通常有3种方法,同步方法,同步块,Lock(锁,1.5版本开始使用)存在JUC包下。在ReentrantLock(可重入锁,常用)同步方法通过synchronize关键字来对方法进行锁定。锁定对象是this同步块同上,但锁定的对象是锁定变量的增删改的行为。JUC里面的copyonwriterArraylist是通过 volatile 、transient关键字和Reentrantlock进行锁控制。通过Reentranlock锁能直接显式的加锁和解锁。(通过try fina原创 2021-11-04 15:03:12 · 264 阅读 · 0 评论 -
线程的常用函数
线程的状态:创建 就绪 阻塞 运行 死亡- 线程休眠:Thread.sleep( xx ms) 毫秒为单位- 线程礼让: Thread.yield() 礼让:让当前正在执行的线程暂停,但不阻塞. 线程从运行状态转为就绪态.(由CPU来调度, 礼让不一定成功.而且每次运行结果都可能不一样.)- 线程停止: 最好的方法不是使用Thread中的api,而是使用标志位来停止.run(){ while(flag){ //执行多线程的任务 }原创 2021-11-03 10:56:50 · 176 阅读 · 0 评论 -
设计模式---静态代理
涉及到代理这个词,就能想到国内外代购。当你要买国外的产品,就会想到,电商平台或者是国外代购。静态代理的概念也是如上。假如你要买一款国外线下才有的鞋。那么你去购买的这个动作,就由平台来完成。package com.ht.Thread;public class ThreadDemo5 { public static void main(String[] args) { new EBay(new You()).BuyShoe(); }}inter..原创 2021-11-02 16:59:40 · 103 阅读 · 0 评论 -
线程状态以及唤醒机制
线程有5个状态:新建(new):刚刚创建出来的线程阻塞(block):正在等待锁对象的线程(没有抢夺到锁对象)睡眠(waitting):处于无限等待状态,只有调用notify方法才能唤醒暂停(sleep):自动放弃cpu的控制销毁(terminated):结束线程//等待唤醒机制的通信/* 顾客告知(notify)老板 要买什么包子 老板开始做包子,顾客进入Waiting状态...原创 2020-02-28 19:41:29 · 236 阅读 · 0 评论 -
如何解决 多线程 同步问题
文章:如何创建线程创建出多个线程之后,我们就会发现一旦这些线程访问共享数据之后,就会出现数据混乱的情况。联想实际:图书馆借书,明星演唱会门票抢购。一旦生活中出现这些共享物品,是如何处理的?首先图书馆借书,比如A借走了《傲慢与偏见》(假设只有一本),那么B想借这本书,只能等到A还回 去,B才能借。再比如门票,比如甲购买了编号为 NO.111的花花演唱会门票,那么其他人想购买这张同为NO....原创 2020-02-28 19:40:30 · 326 阅读 · 0 评论 -
java 第 ⑦ 天 创建线程以及线程相关方法
线程如何创建线程第一 继承java.lang.Thread 类,然后覆盖 Run 方法第二 在Run 方法中实现 线程执行代码即可需要注意多线程 是抢占式 响应,按照优先级来若没有默认的优先级,则每次都会出现不同的运行结果。多次启动一个线程是非法的public class MyThread extends Thread{ @override publice void r...原创 2020-02-25 11:22:23 · 147 阅读 · 0 评论