【第二章:Java核心技术解析】第9节:Java进阶 - 高效并发编程(中)
作者:互联网
大家好,很高兴我们可以继续学习交流Java高频面试题。在上一小节中,我们介绍了一些多线程并发编程的基础高频考察知识点,本小节,我们继续来交流学习多线程的相关知识点,主要包括原子性,可见性,有序性;常用的同步锁synchronized关键字,轻量级锁volatile关键字以及显式锁ReentrantLock等。
我们知道,多线程并发利用了CPU轮询时间片的特点,在一个线程进入阻塞状态时,可以快速切换到其余线程执行其余操作。CPU轮询时间片有利于提高其资源的利用率,最大限度的利用系统提供的处理能力,有效减少了用户的等待响应时间。但是多线程并发编程也存在着线程活性故障以及如何保证线程安全的问题。
在上一小节中,我们阐述了何为线程活性故障。本小节中,主要对线程安全相关知识点进行阐述。我们先来看一个线程安全的经典问题:多个窗口售票问题。
Demo展示如下:
package niuke.thread;
public class Demo {
public static void main(String[] args) {
TicketSale ticketSale = new TicketSale();
Thread Sale1 = new Thread(ticketSale, "售票口1");
Thread Sale2 = new Thread(ticketSale, "售票口2");
Thread Sale3 = new Thread(ticketSale, "售票口3");
标签:Java,进阶,Thread,编程,小节,线程,new,多线程,ticketSale 来源: https://blog.csdn.net/qq_25827845/article/details/114794512