java多线程学习

1.多线程的概念

多线程扩展了多进程的概念,使得同一个进程可以同时并发处理多个任务。线程(Thread)也被称作轻量级进程(Lightweight Process),线程是进程的执行单元。

线程在程序中是独立的、并发的执行流。

线程是进程的组成部门,一个进程可以拥有多个线程,一个线程必须有一个父进程。线程可以有自己的堆栈、自己的程序计数器和自己的局部变量,但不可以拥有系统资源,它与父进程的其他线程共享该进程所拥有的全部资源。

线程可以完成一定的任务,可以与其他线程共享父进程中的共享变量及部分缓解,相互之间协同来完成进程所要完成的任务。

线程是独立运行的,它并不知道进程中是否还有其他线程的存在。线程的执行是抢占式的,也就是说,当前运行的线程在任何时候都可能被挂起,以便另一个线程可以运行。

一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间是可以并发执行。

多线程存在与一个应用程序中,让一个应用程序中可以有多个执行部分同时执行,但操作系统无须将多个线程看做独立的的应用,对多线程实现调度和管理以及资源分配。线程的调度和管理由进程本身负完成。

简而言之,一个程序运行后至少有一个进程,一个进程可以包含多个线程,但至少要包含一个线程。


2.线程与进程的区别和联系

线程是程序中独立的、并发的执行流,与分割的进程相比,进程中线程之间的隔离程度要小。它们共享内存、文件句柄和其他每个进程应有的状态。

因为线程的划分尺度小于进程,使得多线程程序的并发性高。进程在执行过程中拥有独立的内存单元,而多线程共享内存,从而极大的提高了程序的运行效率。

线程比进程具有更高的性能这是由于同一个进程中的线程都有一个共性——多个线程共享同一个进程虚拟空间。线程共性的缓解包括:进程代码段、进程的共有数据等。利用这些数据,线程很容易实现相互之间的通信。

当操作系统创建一个进程时,必须为该进程分配独立的内存空间,并分配大量的相关资源;但创建一个线程则简单的多,因此使用多线程来实现并发比使用多进程实现并发的性能要高的多

多线程的优势:

1)进程之间不能共享内存,线程之间共享内存非常容易。

2)系统创建进程时需要为该进程重新分配系统资源,但创建线程则代价小得多,因此 使用多线程来实现多任务并发比多进程的效率高

3)java语言内置了多线程功能支持,而不是单纯的作为底层操作系统的调度方式,从而简化了java的多线程编程。

3.线程的创建和启动

通过继承Thread类来创建并启动多线程的步骤如下:

1)定义Thread类的子类,并重写该类的run()方法,该run()方法的方法体就代表了线程需要完成的任务。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值