一、并发概念及问题
1.概念
并发:
并发是指在一段时间内同时做多个事情,比如洗衣服和打扫卫生。
并行:
并行是指同一时刻做多个事情,比如吃饭同时看手机
在操作系统中并发是在单核处理器中同时处理多个任务,指逻辑上的同时;并行是多核处理器同时处理多个任务,指物理上的同时。
2.可能出现问题
线程并发可能会导致多个线程操作同一资源,这时就会出现数据混乱,导致安全问题。常见的比如抢票。解决办法需要使用到线程同步。
二、抢票并发代码实现
简述
通过简单模拟抢票流程,复现并发问题
1.抢票代码
/** * 复现线程并发问题 */ public class GetTicket implements Runnable { private int ticket = 10; @Override public void run() { while (true){ if(ticket <= 0){ break; } System.out.println(Thread.currentThread().getName()+" --->买到了第"+ ticket-- +"张票"); } } public static void main(String[] args) { GetTicket ticket = new GetTicket(); new Thread(ticket,"jack").start(); new Thread(ticket,"tom").start(); new Thread(ticket,"rose").start(); } }