Java 多进程简介和java实现多线程

多进程概念

  • 当前的操作系统都是多任务OS
  • 每个独立执行的任务就是一个进程
  • OS将时间划分为多个时间片(时间很短)
  • 每个时间片内将CPU分配给某一任务,时间片结束,CPU自动回收,再分配给另外任务。从外部看,所有任务都是同时在执行,但在CPU上,任务是按照串行依次运行(单核CPU)。如果能多核,多个进程任务可以并行。但是在单核上,多进程只能串行执行。

多进程优点

  • 可以同时运行多个任务
  • 程序因IO阻塞时,可以释放CPU,让CPU为其他程序服务
  • 当系统有多个CPU时,可以为多个程序同时服务
    – 现在CPU不在是提高频率,可是增加核数
    – 多核和并行程序才是提高程序性能的唯一办法

多进程缺点

  • 太笨重,不好管理
  • 不好切换,重新去其他进程,需要加载

多线程概念

  • 一个程序可以包括多个子任务,可串,可并
  • 每个子任务可以称为一个线程
  • 如果一个子任务阻塞,程序可以将CPU调度到另外一个子任务进行工作。这样CPU还是保留在本程序中,而不是被调度到别的进程去。这样,提高了本程序所获得的CPU时间和利用率

多线程优点

  • 线程共享数据
  • 线程通讯更加高效
  • 线程更加轻量级,更容易切换
  • 多个线程更容易管理

JAVA多线程实现

  • java.lang.Thread
    – 线程继承Thread类,实现run方法
  • java.lang.Runnable接口(Java四大接口之一)
    – 线程实现Runnable接口,实现run方法

多线程启动

  • start方法,会自动以新进程调用run方法(底层使用JNI实现
  • 直接调用run方法,将会变成串行执行
  • 同一个线程,多次start会报错,只执行第一次start方法
  • 多个线程启动,其启动顺序先后是随机的,完全由系统来主导
  • 线程无需关闭,只要其run方法执行结束,自动关闭
  • main函数(线程)可能早于新线程结束,整个程序并不终止
  • 整个程序终止是等所有的线程都终止(包括main函数线程)
Thread类实现多线程
public class Thread1 extends Thread{
   
	public void run()
	{
   
		System.out.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值