多线程

线程的概述
进程:代表了内存中的执行区域,负责了这个程序的内存空间分配
线程:一个进程中负责一个执行路径
CPU的分时机制,循环获得自己的CPU时间片。
多线程的好处:
1解决了一个进程里面可以同时运行多个任务,多个执行路径
2提供资源的利用率,而不是提供效率
弊端:1降低了一个进程里面的线程执行频率
2对线程进行管理需要额外的CPU开销,会给系统上下文切换带来额外的负担
3共有变量同时读写,会造成线程安全问题
4线程的死锁。较长时间的等待或资源竞争等
创建多线程
1继承Thread类
2然后复写里面的run()方法
3调用父类的start()方法启动线程
常见线程的方法
Thread(String name)初始化线程的名字
getName()返回线程的名字
setName(String name)设置线程对象名
sleep()线程睡眠的毫秒数
getPriority()线程的优先级别,默认为5
setPriority(int newPriority)设置线程的优先级 最大为10,最小为1
currentThread返回cpu正在执行的线程对象
定义一个类,继承Runnable接口
然后将该对象实例化后的对象传给Thread构造函数
因为Thread继承自Runnable,会调用run()方法
锁对象防止出现死锁
线程间的通信多个线程操作同一个资源
生产者和消费者
实现方法java通过Object类的wait,notify,notifyAll 来实现线程间的同信
wait告诉当前线程放弃执行权,放弃监视器(锁),进入阻塞状态
知道其他对象调用notify为止
notify唤醒等待的线程
notifyAll唤醒同一监视器中调用wait的所有的线程
wait是Object的方法
sleep是Thread的方法
stop方法已经过时使用标记来停止线程
JoinThread jt = new JoinThread();
Thread th = new Thread(jt, "one");
th.start();
one线程不执行完,主线程会一直等待
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值