摘要:
Lock是一个Java类,synchronized是一个Java关键字,两者有本质的不同 Lock需要手动释放锁,synchronized是自动释放锁 Lock适合大量同步的代码同步,synchronized适合少量代码的同步 Lock可以判断是否获得锁的状态,synchronized无法判断是否获 阅读全文
摘要:
等待线程结束:jion() 谦让: yeild() 睡眠: sleep() jion和sleep和yeild之间有什么区别呢? 首先介绍一下jion(): 如果想让主线程等待子线程执行完毕之后再继续运行,比如线程处理一个数据,主线程想要获得这个线程的处理结果,因为线程之间是并行的,这个时候就需要用到 阅读全文
摘要:
数组使用泛型: 泛型可以让我们的数据结构可以放置“任何”数据类型 但是不可以是基本的数据类型,只能是类对象 boolean,byte,char,short,int,long,float,double boolean,byte,char,short,int,long,float,double 因此出现 阅读全文
摘要:
正则表达式能做什么? 正则表达式可以用来搜索、编辑或处理文本。 「都懂它可以处理文本,可到底是怎么回事?」 正则表达式的定义 百度百科:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻 阅读全文
摘要:
经典的操作系统实验题目:生产者消费者实验 本科的时候写的C语言版本,只是通过信号量机制来保证互斥的访问,这次用Java来写完全是一个全新的理解。 一个生产者一个消费者: 情形1:生产者负责生产商品,生产完一件商品就会停止生产,消费者负责消费产品,消费掉一件商品之后就会停止消费,等待生产。 GIthu 阅读全文
摘要:
本节开始线程间通信: 可以通过使用 sleep() 结合 while(true) 死循环来实现线程间的通信 通过使用while(true){ if(条件) } 来检查某个数据,满足条件时结束循环,线程会处在不断运行的状态,会浪费CPU资源 wait/notify 机制应运而生(等待通知机制) 方法w 阅读全文
摘要:
概念 PriorityQueue 一个基于优先级的无界优先级队列。优先级队列的元素按照其自然顺序进行排序,或者根据构造队列时提供的 Comparator 进行排序,具体取决于所使用的构造方法。该队列不允许使用 null 元素也不允许插入不可比较的对象(没有实现Comparable接口的对象)。Pri 阅读全文
摘要:
volatile关键字 关键字volatile的主要作用是使变量在多个线程间可见。 运行结果为: 程序开始运行后,根本停不下来,主要原因是main线程的while循环停不下来,导致程序不能执行后续的代码,解决方法当然是使用多线程技术。 解决同步的死循环: 运行的结果为: 关键字volatile的作用 阅读全文
摘要:
本节开始synchronized关键字的最后一部分内容: 静态同步方法synchronized方法与synchronized(class)代码块 关键字synchronized还可以用在static静态方法上,如果这样写,相当于对当前的*.java文件对应的Class类进行持锁。 结论写在前面:sy 阅读全文
摘要:
补充一个synchronized关键字的结论: 同步的单词为synchronized 异步的单词为asynchronized 当一个线程出现异常时,锁会自动释放。 synchronized同步语句块 用关键字synchronized声明方法在某些情况下是有弊端的,比如A线程调用同步方法执行一个长时间 阅读全文