线程

单线程:在java中,真正的单线程是不存在的。以前我们编写的程序,至少在后台有一个垃圾回收线程存在,这个后台线程在整个程序的运行中一直存在,它会在需要的时候启动。

通常所说的单线程是指从表面上看,没有使用多线程的编码机制,只有一个main方法在运行。

 

多线程机制:java中支持多线程,

它支持一个任务分为几部分(每一部分称为一个程序执行流,一条执行路线),

使用多线程机制会极大提高效率,

一条线程出现阻碍,不影响其他线程的执行;

数据或代码的共享,即共享资源

 

线程对象的构造:

1、    继承java.lang.Thread类,

2、    让接口Runnable的实现类作Thread类的参数,构造一个线程对象

 

线程的启动方式:start()方法

调用此方法从概念上说不是执行线程中的代码。

 

线程执行哪些代码?

它要执行run()方法中的代码。一个线程对象肯定要重写run()方法,因为父类中的run()是空实现,接口Runnable中的run()方法没有实现。

 

线程三要素是哪些?

1、    CPU,程序无法控制cpu,因为它是由操作系统控制和调度的;

2、    代码

3、    数据

三者中,程序员可控的只有代码和数据;

根据代码和数据是否共享,可分为四种情况:

1、    代码和数据都共享;

a) 火车售票系统

2、    代码和数据都不共享

a) 线程A有自己的代码,如加法运算;线程B同样也有自己的代码,作减法运算。

3、    代码共享,数据不共享

a) 如果数据是属于实例的,每个线程对象都有自己的一份实例数据,但方法共享;

4、    数据共享,代码不共享

a) 上传文件和下载文件

 

同步概念:

程序的安全性

安全性体现在当一个线程对象修改数据时,其他的线程对象都不能执行;

 

线程状态图:

正常状态四种,分别是:

1、    新建状态(new),构造一个线程对象;

2、    可运行状态(runable),新建的线程对象通过调用start()方法,进入可运行状态,

3、    运行状态(running),经过Cpu的调用(在多个线程对象中,cpu选中了这个线程对象),进入运行状态,执行run()方法中的代码;

4、    死亡状态(dead),线程中的代码正常运行完毕,线程消亡。


线程类提供一个有用的方法:

Sleep(int times);停顿若干毫秒的时间。

常用的场合为倒计时。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值