标签:code ext 自己 方式 时间 images 自定义 并行 ...
一、线程和进程的概念
(1)进程概念
进程就是正在执行的程序,一个进程通常就是一个正在执行的应用程序。进程就是一个可执行程序一次运行的过程,它是系统进行资源分配和调度的一个独立单位。
(2)线程概念
线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数(不同的线程有可能用同样的数据或方法)。
(3)进程和线程的关系
a.一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个主线程,其他的线程都是由主线程去创建和启动的。
b.系统资源分配给进程,同一个进程的所有线程共享该进程的所有资源;
c.线程是指进程内的一个执行单位,也是进程内的可调度实体;
二、多线程
(1)多线程概念
多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。(即同一时间执行多任务)。需要执行并发任务才需要用到多线程。
(2)多线程好处
a.Java支持编写多线程的程序;
b.多线程最大好处在于可以同时并发执行多个任务;
c.多线程可以最大限度地减低CPU的闲置时间,从而提高CPU的利用率
(3)多线程的不利方面
a.线程也是程序,所以线程需要占用内存,线程越多占用内存也越多;
b.多线程需要协调和管理,所以需要CPU时间跟踪线程;
c.线程之间对共享资源的访问会相互影响,必须解决竞用共享资源的问题;
d.线程太多会导致控制太复杂,最终可能造成很多bug,甚至会造成死锁;
三、Java中的线程
(1)Java中的主线程
任何一个Java程序启动时,一个线程立刻运行,它执行main方法,这个线程称为线程的主线程,也就是说任何Java程序都至少有一个线程,即主线程;主线程的特殊之处在于:
a.它是产生其他线程子线程的线程;
b.通常它必须最后结束,因为执行其他子线程的关闭工作;
(2)Java创建线程的两种方法
a.继承Thread类的方式
b.实现Runnable接口的方式
(3)自定义线程----继承Thread方法
a.在Java中要实现线程,最简单的方式就是扩展Thread类,重写其中的run方法,方法原型如下:
public void run();
b.Thread类中的run方法本身并不执行任何操作,如果我们重写了run方法,当线程启动时,它将执行run方法
c.Thread类也实现了Runnable接口
继承Thread类例子:
//定义 public class MyThread extends Thread{ public void run(){ ...... } } //调用 MyThread thread = new MyThread(); thread.start();
标签:code ext 自己 方式 时间 images 自定义 并行 ...
原文地址:http://www.cnblogs.com/xuegu/p/7407413.html