奋斗在JAVA路上的随手记——线程,线程安全问题,线程的六种常见状态

第一章 线程的创建方式及相关方法

1、线程创建方式
A、继承Thread类
B、实现Runnable接口(推荐使用)
	格式变化:可以采用匿名内部类方式创建线程
2、相关方法
A、构造方法
	public Thread() //分配一个新的线程对象。
	public Thread(String name) //分配一个指定名字的新的线程对象。
	public Thread(Runnable target) //分配一个带有指定目标新的线程对象。
	public Thread(Runnable target,String name) //分配一个带有指定目标新的线程对象并指定名字
	
B、常用方法
	public String getName() //获取当前线程名称。
	public void start() //导致此线程开始执行; Java虚拟机调用此线程的run方法。
	public void run() //此线程要执行的任务在此处定义代码。
	public static void sleep(long millis) //正在执行的线程以指定的毫秒数暂停(暂时停止执行)。
	public static Thread currentThread() //返回对当前正在执行的线程对象的引用

第二章 线程安全

1、安全问题
A、问题实例:
	售票问题
	
B、问题特征:
	多个线程、共享数据、修改数据(增删改)彼此影响
2、解决方案
A、同步代码块 
	a. 格式:
		synchronize(锁对象){ .... }
	b. 说明:
		非静态代码块锁对象是 	this
		静态代码块锁对象是 	 类名称.class
		
B、同步方法
	a. 格式:
		修饰符 synchronize 返回值类型 方法名称(参数列表){ ... }
	b. 例如:
		public synchronize void method(){ .... }
		
C、锁对象
	a. 格式:
		Lock mlock = new ReentrantLock(); //【1】定义成员位置(获取锁对象)
		mlock.lock(); 		//【2】在数据变化前加锁(加锁)
		mlock.unlock();		//【3】在数据变化后解锁(解锁)

第三章 线程状态

1、常见状态(官方六种状态)
a. New 新建
b. Runnable 可运行
c. Blocked 锁阻塞
d. Waiting 无限等待
e. Timed Waiting 计时等待
f. Teminated 被终止












  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值