线程

什么是进程?
进程是电脑里正在运行的一个程序。例如:eclipse、记事本、chrome。
进程是系统分配资源的最小单位。

什么是线程?
一个进程里可以包含多个线程,每个线程负责完成一个任务。
线程是程序调度的最小单位。
一个进程里至少要包含一个线程,这个线程叫主线程。

单线程:如果你不创建新的线程,程序就是单线程的,所有代码都在主线程里执行。

多线程:除了系统自动产生的主线程之外,你又额外创建了一些线程。当线程个数比1个多的时候,称为是多线程。

什么时候需要使用多线程呢?
答:(1)当你有多个任务需要执行,但是任务与任务之间可以独立进行的时候,可以使用多线程,这样做可以充分利用电脑(CPU)提高程序的运行效率。
(2)有一个任务特别耗时,我们可以为耗时的任务单独分配一个线程,这样的话,就不会影响其他任务的执行。

Java程序如何实现多线程?
1、建一个类继承于Thread,重写run方法
第一步:创建类继承于Thread
第二步:重写run方法
第三步:创建 对象
第四步:让对象开始执行任务。对象.start()

因为想要在一个新的线程里执行某个任务,必须将任务写在子类的run方法里,而且调用的用时候要使用start方法,又因为一个类只有一个run方法,因此run方法很难被重用。(一个自定义的Thread只创建了一个对象),因此可以考虑使用匿名类。


2、建一个类实现Runnable接口,在实现类里实现run方法。然后把实现类的对象作为Thread的参数。
第一步:创建一个Runnable的实现类
第二步:实现run方法
第三步:创建一个实现类的对象
第四步:把对象作为Thread的参数
第五步:Thread对象调用start方法。

通常也是使用匿名类来完成实现类对象的创建。

线程分为2类:
一类叫用户线程。
另一类叫守护线程。

守护线程是为用户线程服务的。如果用户线程没了,守护线程立即结束。
在java程序里,任何一个程序至少包含2个线程,一个是主线程,一个是gc回收的线程,gc回收线程在守护线程里执行。当所有用户线程结束时(任务执行完了,中途退出了),守护线程自动完结。当所有用户线程结束时,进程也会结束。

线程的状态
new状态:线程刚创建完毕,尚未调用start方法。
对应的代码是 Thread t = new Thread();//或自定义的子类对象刚创建出来。

runnable状态:可运行的(尚未运行)。
t.start()。已经在等待被皇上(CPU)翻牌了。

running状态:正在被CPU宠幸(正在执行)。

block(阻塞)状态:主动或者被动暂停线程运行。(你暂停了,意味着你把cpu让给别人用了。)

dead状态:你的任务执行完了,或者被exit了。

注意的一点:想要进入running状态,你必须是runnable状态。(要么从new状态进入runnable状态,要么从block状态进入runnable状态。)
start方法只能调用一次。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值