进程与线程
线程(thread)是操作系统能够进行运算调度的最小单位。大部分情况下,它被包含在进程之中,是进程中的实际运作单位,一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。(wikipedia)
进程(process)是指计算机中已运行的程序,在面向线程设计的系统中,进程本身不是基本运行单位,而是线程的容器。程序本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例。(wikipedia)
所以一台机器可以启多个进程实例,一个进程可以启多个线程,线程共享内存。
为什么要使用多线程
使用多线程的编程通常可以有更好的性能,更加充分的利用cpu资源,但是线程间的调度和切换也会浪费cpu时间,所以需要依据实际情况判断是否需要使用多线程
线程的创建(java)
实现Runnable接口
public class MyThreadOne implements Runnable{
@Override
public void run() {
System.out.println("实现Runnable接口");
}
}
继承Thread类
public class MyThreadTwo extends Thread {
@Override
public void run() {
System.out.println("继承Thread类");
}
}
Runnable类是一个接口类,只有一个抽象方法run(),Thread类实现了Runnable接口,两种方式实现Runnable接口会应用更多一些,一是方便操作一个全局变量,二是解决类单继承的问题,并解耦运行机制和运行内容。
所以我们常用的线程池里面的线程
网友评论