上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 37 下一页

2021年4月25日

java 多线程 读写互斥锁ReentrantReadWriteLock:读读不互斥,读写互斥,写写互斥

摘要: ReentrantReadWriteLock: 类ReentrantLock具有相互互斥的排他效果,也就是说,同一时间,只有一个线程执行lock()方法后面的任务。这样做虽然可以解决问题,但是效率非常低。使用ReentrantReadWriterLock可以加快运行效率,某些不需要操作实例变量的方法 阅读全文

posted @ 2021-04-25 22:52 zhangmingda 阅读(509) 评论(0) 推荐(0) 编辑

java 多线程: Thread 锁ReentrantLock 常用方法

摘要: 注意 reentrantLock 和 同步代码块儿一样,同一个时刻只能一个线程获取锁,也就是共用锁的代码块部分,线程是顺序执行的 ReentrantLock 常用方法 getHoldCount获取当前线程被锁定的次数,如果调用unlock,锁定次数会减去1: lock.getQueueLength( 阅读全文

posted @ 2021-04-25 20:06 zhangmingda 阅读(293) 评论(0) 推荐(0) 编辑

2021年4月24日

java 多线程 Thread 锁ReentrantLock;Condition等待与通知;公平锁

摘要: 1,介绍: import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; 在JAVA的多线程编程中,我们可以使用synchronized关键字来实现线程之间的同步互斥,但是JDK1.5 阅读全文

posted @ 2021-04-24 22:47 zhangmingda 阅读(138) 评论(0) 推荐(0) 编辑

java 多线程 Thread.join子线程结束父线程再运行;join(long):等待超时毫秒数

摘要: Join的使用 目的:当子线程运行结束后,父线程才能再继续运行 /** * @ClassName ThreadJoinExample * @projectName: object1 * @author: Zhangmingda * @description: XXX * date: 2021/4/2 阅读全文

posted @ 2021-04-24 21:53 zhangmingda 阅读(171) 评论(0) 推荐(0) 编辑

java 多线程 :ThreadLocal 共享变量多线程不同值方案;InheritableThreadLocal变量子线程中自定义值,孙线程可继承

摘要: ThreadLocal类的使用 变量值的共享可以使用public static变量的形式,所有的线程都是用同一个public static变量。如果想实现每一个线程都有自己的值。该变量可通过ThreadLocal实现 定义:ThreadLocal<T> name = new ThreadLocal< 阅读全文

posted @ 2021-04-24 20:15 zhangmingda 阅读(293) 评论(0) 推荐(0) 编辑

2021年4月23日

java 多线程:线程通信-等待通知机制wait和notify方法;(同步代码块synchronized和while循环相互嵌套的差异);管道通信:PipedInputStream;PipedOutputStream;PipedWriter; PipedReader

摘要: 1、等待通知机制: 等待通知机制的原理和厨师与服务员的关系很相似: 1,厨师做完一道菜的时间不确定,所以厨师将菜品放到“菜品传递台”上的时间不确定 2,服务员什么时候可以取到菜,必须等到厨师做完之后放到菜品传递台上才行。所以,服务员会等待厨师。 3,厨师做完菜之后放到菜品传递台上,就相当于通知了服务 阅读全文

posted @ 2021-04-23 16:20 zhangmingda 阅读(157) 评论(0) 推荐(0) 编辑

2021年4月22日

java IO操作和计算操作:工作内存和主内存 volatile关键字作用;原子操作对象AtomicInteger ....

摘要: 应该停止但无法停止的计算线程 如下线程示例,线程实例中while循环中的条件,在主线程中通过调用实例方法更新后,while循环并没有更新判断变量是否还成立。而是陷入了while(true)死循环. import javafx.scene.paint.Stop; /** * @ClassName Th 阅读全文

posted @ 2021-04-22 22:57 zhangmingda 阅读(99) 评论(0) 推荐(0) 编辑

java 多线程:线程死锁,如何判断程序是否有死锁代码块儿

摘要: 线程死锁 死锁是指两个或两个以上的线程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去(百度百科)。 代码示例: /** * @ClassName ThreadDeadLock * @projectName: object1 * @author: 阅读全文

posted @ 2021-04-22 20:23 zhangmingda 阅读(267) 评论(0) 推荐(0) 编辑

java 多线程: Thread 并发访问-代码块同步synchronized {};String作为被锁的对象

摘要: 方法同步的弊端 方法同步的时候,如果一个方法需要线程安全控制的代码速度其实很快,但是还有其他的业务逻辑代码耗时非常长(比如网络请求),这样所有的线程就在这一块就等待着了,这样造成了极大的资源浪费如果并发量很大,可能会造成系统崩溃。(并发的线程遇到synchronized同步的方法,变成串行....) 阅读全文

posted @ 2021-04-22 19:15 zhangmingda 阅读(178) 评论(0) 推荐(0) 编辑

java 多线程:Thread 并发线程: 方法同步synchronized关键字,与static的结合

摘要: 1、方法内的变量是安全的 方法内定义的变量,每个变量对应单独的内存变量地址,多个线程之间相互不影响。多个线程之间的变量根本没有一毛钱关系 public class ThreadFuncVarSafe { public static void main(String[] args) { Runnabl 阅读全文

posted @ 2021-04-22 13:36 zhangmingda 阅读(356) 评论(0) 推荐(0) 编辑

上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 37 下一页

导航