程序的跨平台性:除了能够运行,还必须保证运行的结果。
第二种方式:
Class MyThread implements Runnable{
Public void run(){
Runnable target=new MyThread();
Thread t3=new Thread(target);
Thread.start();//启动线程
}
}
P384:通过接口实现继承
练习:写两个线程:
① 输入200个“###”②输入200个“***”
下面为线程中的7中非常重要的状态:(有的书上也只有认为前五种状态:而将“锁池”和“等待队列”都看成是“阻塞”状态的特殊情况:这种认识也是正确的,但是将“锁池”和“等待队列”单独分离出来有利于对程序的理解)
① ⑴
② ⑵
③ ⑶ run()结束
Start()
OS分配CPU
CPU时间片结束
yield() o.wait()
等待锁标记
notify()
注意:图中标记依次为
①输入完毕;②wake up③t1退出
⑴如等待输入(输入设备进行处理,而CUP不处理),则放入阻塞,直到输入完毕。
⑵线程休眠sleep()
⑶t1.join()指停止main(),然后在某段时间内将t1加入运行队列,直到t1退出,main()才结束。
特别注意:①②③与⑴⑵⑶是一一对应的。
进程的休眠:Thread sleep(1000);//括号中以毫秒为单位
当main()运行完毕,即使在结束时时间片还没有用完,CPU也放弃此时间片,继续运行其他程序。
Try{Thread.sleep(1000);}
Catch(Exception e){e.printStackTrace(e);}
T1.join()表示运行线程放弃执行权,进入阻塞状态。
当t1结束时,main()可以重新进入运行状态。
T1.join实际上是把并发的线程编程并行运行。
线程的优先级:1-10,越大优先级越高,优先级越高被OS选中的可能性就越大。(不建议使用,因为不同操作系统的优先级并不相同,使得程序不具备跨平台性,这种优先级只是粗略地划分)。
注:程序的跨平台性:除了能够运行,还必须保证运行的结果。
一个使用yield()就马上交出执行权,回到可运行状态,等待OS的再次调用。
相关文章
- 微信小程序外部如何使用卡槽改变组件内容
- 基于腾讯云开发微信小程序(新闻发布及共享平台)中
- 【说站】新升级带特效喝酒神器小程序源码-多种游戏支持流量主
- 【说站】紫色UI趣味测试微信小程序源码下载包含多种评测
- pycharm运行不了程序_如何完全卸载pycharm
- docker容器中的前台程序和后台程序,为什么一定要前台运行
- 【愚公系列】2022年10月 微信小程序-电商项目-确认订单功能实现
- 四路抢答器c语言程序_八路抢答器原理讲解
- CFDL Chuanrui文件目录列表程序 一个简洁好用的个人网盘系统
- java接入微信小程序步骤和代码示例
- Go语言程序的编译和运行
- Linux程序运行故障:探索原因与解决方案(linux无法运行程序)
- 探索Linux下后台运行程序的奥秘(linux查看后台程序)
- Linux下编译运行C程序的指南(linux编译运行c)
- Linux反汇编:探索程序真面目(linux反汇编软件)
- Linux下运行Windows程序的利器——Wine(linux的wine)
- Linux C中的守护进程:实现程序无人值守运行(linuxc守护进程)
- 用Linux和C进行程序编写,如何计算运行时间?(linuxc运行时间)
- 探索mssql在程序中的踪迹(在程序中找不到mssql)
- 探索Linux下运行的程序有多少(linux查看运行的程序)
- 掌握Linux命令LD:链接器如何完成程序可执行文件的装载与运行?(linux命令ld)
- Linux系统下程序重定向的挑战(linux程序重定向)
- 使用程序对Redis缓存进行实时优化(程序对redis缓存)
- C#生成高质量缩略图程序—终极算法
- CorFlags.exe检查.NET程序平台目标(PlatformTarget)的工具
- 解决C#程序只允许运行一个实例的几种方法详解
- JS实现程序暂停与继续功能代码解读