多线程学习系列-初探深入浅出Java多线程-入门
Posted 程序猿强
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程学习系列-初探深入浅出Java多线程-入门相关的知识,希望对你有一定的参考价值。
简介:本次记录多线程是日常开发中的常用知识,也是难用知识。了解Java中多线程相关的基本概念,如何创建,启动和停止线程?什么是正确的多线程,怎样编写多线程程序。
一,进程和多线程简介
相关概念:
1.线程:
线程(thread台湾称 执行绪)是进程中某个单一顺序的控制流。也被称为轻量进程(lightweight processes)。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程。与进程不同的是同类的多个线程共享同一块内存空间和一组系统资源,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程小得多,也正因为如此,线程也被称为轻量级进程
2.进程:
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。简单来说,一个进程就是一个执行中的程序,它在计算机中一个指令接着一个指令地执行着,同时,每个进程还占有某些系统资源如CPU时间,内存空间,文件,文件,输入输出设备的使用权等等。换句话说,当程序在执行时,将会被操作系统载入内存中。
3.线程和进程的区别:
4) 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
5) 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。
优缺点:线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源的管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。
4.多线程
多线程就是几乎同时执行多个线程(一个处理器在某一个时间点上永远都只能是一个线程!即使这个处理器是多核的,除非有多个处理器才能实现多个线程同时运行。)。几乎同时是因为实际上多线程程序中的多个线程实际上是一个线程执行一会然后其他的线程再执行,并不是很多书籍所谓的同时执行。
二,多线程的使用
2.1 继承Thread类
public class MyThread extends Thread {
@Override
public void run() {
super.run(); System.out.println("MyThread");
}
}
public class Run {
public static void main(String[] args) {
MyThread mythread = new MyThread();
mythread.start();
System.out.println("运行结束");
}
}
运行结果:运行结束MyThread
线程是一个子任务,CPU以不确定的方式,或者说是以随机的时间来调用线程中的run方法。
以上是关于多线程学习系列-初探深入浅出Java多线程-入门的主要内容,如果未能解决你的问题,请参考以下文章