你的位置:首页 > 软件开发 > Java > Java多线程理解

Java多线程理解

发布时间:2015-09-17 18:00:10
一、理论概念进程与线程进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资 ...

一、理论概念

进程与线程

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。

线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.

进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

 

二、线程的Java实现

目前实现java线程有2种方式,继承Thread类和实现Runnable接口,重写run方法。

1、实现Runnable接口

实现 Runnable的接口的好处是实现变量的共享,多个线程使用同一个Runable对象,如上代码块中的成员变量j:

Java多线程理解Java多线程理解
package src;/** * * @author Shawn Wang * */public class MyThread implements Runnable {  private int j = 100;  @Override  public void run() {    while (true) {      if (j > 0) {        System.out.println(Thread.currentThread().getName() + "-- num:"            + j--);      } else {        break;      }    }  }  public static void main(String[] args) {    MyThread mt = new MyThread();    Thread thread1 = new Thread(mt);    Thread thread2 = new Thread(mt);    Thread thread3 = new Thread(mt);    thread1.start();    thread2.start();    thread3.start();  }}

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:Java多线程理解

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。