Java多线程
文章平均质量分 73
关于java并发的相关文章
八股文朗诵家
扶我起来背八股文
展开
-
Java中线程的创建方式
线程的创建方式1. 继承Thread类创建线程public class StarThread1 extends Thread{ @Override public void run() { System.out.println("开启线程的第一种方式,继承Thread并重写它的run方法"); } public static void main(String[] args) { StarThread1 starThread1 = new原创 2021-06-05 19:11:11 · 63 阅读 · 0 评论 -
Java面试中的那些锁都是啥?
1. 公平锁/非公平锁公平锁:当多个线程操作某一公平锁资源时,只能按照线程申请资源的先后顺序来获取锁;非常公平,好比一个队列,不能够插队,线程必须先来后到,谁先来谁先执行非公平锁:多个线程申请锁的时候可以不按照顺序获取,有可能会造成优先级反转或者饥饿现象;不公平,可以插队,可以尝试获取锁synchronized 是非公平锁,底层是基于CAS(Compare And Swape:比较并交换)实现的。ReentrantLock 默认是非公平锁,是基于AQS(AbstractQueuedSyn原创 2021-05-23 17:07:53 · 229 阅读 · 0 评论 -
售票情景解读synchronized和Lock两种锁的区别
一、并发下售票存在的Bug首先让我们我们定义一个资源类Ticket我们通过多个线程来操作这一资源类,模拟卖票的例子://资源类class Ticket{ //属性总共还剩有多少张票 private int number=50; //卖票的方法 public void sale(){ if (number>0){ //卖掉一张票 number--; try {原创 2021-01-02 16:32:28 · 1393 阅读 · 10 评论 -
喝咖啡也能悟出并发并行
一、线程和进程进程(Process)定义:进程是并发执行的程序中分配和管理资源的基本单位。对于操作系统来说一个任务就是一个进程。比方说:打开一个QQ就是一个QQ进程,打开一个微信就是一个微信进程,打开一个浏览器就是一个浏览器进程,打开一个Word就是一个Word进程。线程(Thread)定义:线程是进程的一个执行单元,是进程调度的实体,是比进程更小的独立运行单位。当有的进程不止同时干一件事时,比如QQ发消息的同时还能接受消息,这个时候一个进程下面又要干多件事,就需要启动多个线程执行。原创 2020-12-30 12:24:38 · 173 阅读 · 0 评论