多线程的创建

多线程:
多进程与多线程的本质区别是每个进程都拥有自己的一整套变量,而线程则共享数据.
共享变量使得线程之间的通信更有效、更方便
启动线程调用的是Thread的start方法,而不是run方法。start方法来自JVM_StartThread,其中的方法中有vmSymbolHandles调用run方法

Runnable接口实现多线程:
    runnable接口中有run()抽象方法的声明;
    使用runnable避免了使用Thread实现多线程产生的单继承的局限,同时比Thread实现多线程更好的体现类的共享。
    runnable通常使用匿名内部类或者lamada表达式创建多线程;
callable:
在jdk1.5中添加的新的开发包Java.uti.concurrent下定义了一个新的接口callable,用于有返回值的线程

线程名的创建:
thread()构造方法,在创建线程的时候设置名称;
setName()设置名称,getName()获取线程的名称
currentThread()获取当前进程的信息
如果在创建线程时未取名字,则会直接分配一个名称;线程的名称不可重复,且在过程中不要修改

在实际编译运行中Java都会创建一个进程,而主方法是进程中的一个线程,所有的线程都是通过主线程创建和启动的;

在一个进程中有多个线程时要明确,线程进入run()方法是依次的,但是真正进入的对象的数量不一定。进入的代码的顺序不一定,但是总体是并发的

sleep、 yield 、join方法的区别
sleep()方法是暂缓线程,待特定的时间后再执行当前线程,sleep方法不可以释放锁;
yield()方法暂停当前进程,让出CPU权限,让其他线程执行完毕后,再执行主线程

停止线程有三种方法:
    1.设置标志位;
    2.使用禁用的stop方法;
    3.使用Thread中的interrup中断线程(给受阻塞的线程发出一个中断信号,这样受阻线程就得以退出阻塞的状态。开
发人员根据中断标志的具体值,来决定如何退出线程。)
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值