首页 技术 正文
技术 2022年11月11日
0 收藏 641 点赞 3,545 浏览 938 个字

声明:本系列大多是翻译自https://www.javatpoint.com,加上自己的增删改,尽力写的系统而通俗易懂,后文不再重复声明。

点我跳过黑哥的卑鄙广告行为,进入正文。

Java多线程系列更新中~

  正式篇:

  1. Java多线程(一) 什么是线程
  2. Java多线程(二)关于多线程的CPU密集型和IO密集型这件事
  3. Java多线程(三)如何创建线程
  4. Java多线程(四)java中的Sleep方法
  5. Java多线程(五)线程的生命周期

  番外篇(神TM番外篇):

  1. Java 过一下基础
  2. 转载:java中Thread.sleep()函数使用
  3. Java多线程 Socket使用

Java的多线程是一个同时执行多个线程的过程。

线程是一个轻量级的子进程,是最小的处理单元。多线程和多进程都用于实现多任务处理。

但是,我们使用多线程而不是多进程,因为线程使用共享内存区域,它们不分配单独的内存区域以节省内存,而且线程之间上下文切换比进程花费的时间更少。

用一个东西之前,总得了解一下它的优点,这样才有动力看下去,这里我们先看一下多线程的优点。

Java多线程的优点

  1. 它不会阻塞用户,因为线程是独立的,你可以同时执行多个操作,举个栗子,你需要一个延时,等待三秒钟再进行接下来的操作,如果你使用单线程,它就真的等了你三秒,这三秒,啥都不干,啥都得放一边,就等。。。这明显是不可接受的。
  2. 你可以同时执行多个操作,节省时间。这里面又牵扯到CPU密集型和IO密集型的问题,可以看这篇文章:关于多线程的CPU密集型和IO密集型这件事
  3. 线程是独立的,死掉一个,不影响另一个。

多任务处理

多任务处理是同时执行多个任务的过程,我们使用多任务处理来尽可能增大CPU的利用率。多任务处理可以通过两种方式实现,没错,多线程和多进程。

  1.多进程

    • 每个进程在内存中有一个地址,分配一个单独的内存区域
    • 进程是重量级的
    • 通信成本比较高
    • 切换进程需要一些时间来保存和加载寄存器,内存映射等

  2.多线程

    • 线程共享相同的地址空间
    • 轻量级
    • 通信成本比较低

什么是JAVA中的线程

 线程是一个轻量级的子进程,是最小的处理单元。如下图:

  Java多线程(一) 什么是线程

  一个系统下可以有多个进程,一个进程中又有多个线程。

JAVA Thread类

Java提供了Thread类来实现线程编程,至于怎么做,且看下文。

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