Java基本概念-线程开发

一 线程和进程
 
 1 进程(Process):正在运行的程序
 
 2 线程(Thread):进程中的一个任务,必须包含在进程中,进程是线程的容器
 
 3 一个进程中至少得包含一个线程,包含一个线程的进程叫单线程进程,包含两个或两个以上线程的进程叫多线程进程
 
 4 线程的作用:使用多线程是为了让多任务并行
 
 5 线程的状态:
 
  (1)出生状态(born):线程刚new完的状态
 
  (2)就绪状态(ready):实例化线程会使线程处于就绪状态,但不会执行线程中的代码
 
  (3)运行状态(run):调用线程的start方法会启动线程,将其变为执行状态
 
  (4)阻塞状态(block):由线程挂起、线程休眠、线程等待而引起的状态,不是一直都有
 
  (5)死亡状态(dead):run方法执行结束时,线程终止
 
 6 创建线程的方法:
 
  (1)继承Thread类
 
  (2)实现Runnable接口
 
 7 关闭进程时,一定先关闭所有进程的线程,即进程要等到所有线程都终止运行后才结束
 
 8 线程具有优先级,但不绝对改变线程的完成效率
 
 9 main函数执行时所属的线程称为主线程
 
二 守护线程
 
 1 守护线程:不影响进程的退出,是一直运行的程序
 
三 线程安全和非线程安全
 
 1 线程安全:多线程并行时得到的结果是期望值时,称线程安全
 
 2 非线程安全:多线程并行时得到的结果有一个不是期望值时,称非线程安全
 
 3 出现非线程安全的原因:多个线程操作同一资源
 
 4 保证线程安全的方法:
 
  (1)同步方法:在方法声明时添加关键字synchronized为多线程访问的方法加锁,使得同时只允许一个线程执行方法中的代码,其他线程处于等待状态
 
  (2)同步块:同步块用于包含加锁的语句,一个线程执行到同步块时,会对同步对象加锁,然后执行同步块中的语句,其他线程执行到同步块时,进入等待状态
 
 5 同步块和同步方法
 
  (1)同步方法同一时刻只允许一个线程访问,一个对象就是钥匙,静态方法的钥匙是类名,实例方法的钥匙是调用该方法的对象名
 
  (2)同步块可以以任意一个字符作为钥匙,或者以类名.class作为钥匙
 
 6 类名.class:获取该类在方法区中的源代码,源代码在方法区中只加载一次
 
  一个类首次加载时,首先加载类的源代码到方法区,然后运行静态属性、静态块
 
四 相关类
 
 1 Thread类:用于创造线程,操作线程的方法
 
 2 Timer类:线程类,对线程的封装,封装定时器
 
五 相关方法
 
  (1)start():启动线程
 
  (2)sleep():为当前线程指定时间休眠,线程休眠不占用CPU资源
 
  (3)run():该方法中的代码会在线程启动的时候执行
 
  (4)setDaemon():设置该线程为守护状态,该线程是否运行不影响进程的结束
 
  (5)mkdir():创建当前目录
 
  (6)mkdirs():创建当前目录和字目录
 
  (7)setPriority():修改线程优先级状态
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值