Java多线程入门

Java多线程入门

【摘要】Java多线程入门~

前言

0到1是最难的,1到100都是慢慢的积累。

相关概念

进程[Process]:
线程[Thread]:

线程实现



继承Thread类



实现Runnable接口

实现Callable接口 JUC[java.util.concurrent]

线程状态



四种原因进入就绪

四种原因进入阻塞

线程停止stop
Thread_study02.com.sxt.state.TerminateThread

线程暂停sleep
Thread_study02.com.sxt.state.BlockSleep01
Thread_study02.com.sxt.state.BlockSleep02
Thread_study02.com.sxt.state.BlockSleep03

线程礼让yield
Thread_study02.com.sxt.state.YieldDemo01
Thread_study02.com.sxt.state.YieldDemo02

线程插队join
Thread_study02.com.sxt.state.BlockJoin01
Thread_study02.com.sxt.state.BlockJoin02

Thread.State
就绪和运行都叫runable


Thread_study02.com.sxt.state.AllState

优先级
Thread_study02.com.sxt.state.PriorityTest

守护线程
Thread_study02.com.sxt.state.DaemonTest

其他方法

线程非同步
并发:同一个对象多个线程同时操作。
Thread_study02.com.sxt.syn.UnsafeTest01
Thread_study02.com.sxt.syn.UnsafeTest02
Thread_study02.com.sxt.syn.UnsafeTest03

线程同步
资源:酒店、锁:房卡、
等待队列和锁

对象锁
this锁
Class锁
方法、块

同步方法
Thread_study02.com.sxt.syn.SynTest01
成员方法锁this,因为成员方法是对当前this中对象的属性(资源)操作。

同步块
Thread_study02.com.sxt.syn.SynBlockTest01
Thread_study02.com.sxt.syn.SynBlockTest02
Thread_study02.com.sxt.syn.SynBlockTest03

HappyCinema.java
HappyCinema2.java

使用同步方法
Happy12306.java

并发容器
SynContainer.java
CopyOnWriteArrayList.java

死锁—哲学家就餐

DeadLock.java

生产者消费者模式

生产者消费者




管程法


Thread_study04.com.sxt.cooperation.CoTest01.java

信号灯法
Thread_study04.com.sxt.cooperation.CoTest02.java

高级主题

任务定时调度

Thread_study04.com.sxt.others.TimerTest01

quartz

Thread_study04.com.sxt.others.HelloJob
Thread_study04.com.sxt.others.QuartzTest

HappenBefore







Thread_study04.com.sxt.others.HappenBefore

结束语

  1. 创建线程的两种方式
    继承Thread类
    实现Runnable接口
    实现Callable接口

  2. 模拟一份资源 多个代理

ss

PV page view
UV unique view
VV visit view

只要忙就是因为笨,只要痛苦就是因为傻。

评论