首页 技术 正文
技术 2022年11月16日
0 收藏 581 点赞 3,554 浏览 674 个字

多任务

现代操作系统(windows,MacOS,Linux)都可以执行多任务:
多任务就是同时运行多个任务,例如同时开启钉钉、百度网盘、火狐、谷歌、ps等
操作系统执行多任务就是让多个任务交替执行,例如浏览器执行0.001秒,网盘执行0.001秒,钉钉执行0.001秒。因为任务的数量远远多余CPU的数量,因此任务也是交替执行的

进程、线程

进程(Process):一个任务就是一个进程。
线程(Thread):某些进程内部还需要同时执行多个子任务。例如word打字、拼写检查、打印等

进程和线程的关系:

  • 一个进程可以包含一个或多个线程(至少一个线程)

实现多任务的方法:

  • 多进程模式(每个进程只有一个线程)
  • 多线程模式(一个进程有多个线程)
  • 多进程+多线程模式(复杂度最高,一般不考虑)

多进程VS多线程

  • 创建进程比创建线程开销大(尤其是Windows)
  • 进程间通信比线程间通信慢
  • 多进程稳定性比多线程高
    * 多进程:一个进程崩溃不会影响其他的进程
    * 多线程:任何一个线程的崩溃会导致整个进程的崩溃

Java语言内置多线程支持:

  • 一个Java程序实际上是一个JVM进程
  • JVM用一个主线程来执行main()方法
  • 在main()方法中又可以启动多个线程

多线程编程的特点:

  • 多线程需要读写共享数据
  • 多线程经常需要同步。例如看电影,必须由一个线程播放视频,一个线程播放音频。2个线程需要协调运行。否则视频和音频会不同步。
  • 多线程编程的复杂度高,调试更困难

Java多线程编程的特点:

  • 多线程模型是Java程序最基本的并发模型
  • 网络、数据库、web等都是依赖多线程模型
  • 必须掌握Java多线程编程才能继续深入学习
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,491
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,492
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,132
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,293