我们现在使用的操作系统都是多任务操作系统,每个运行的任务就是操作系统所做的一件事情,比如我们在和别人聊QQ时还可以一边听着歌,一般来说一个任务对应着一个进程,也有可能包含多个进程。
线程是进程中的实体,一个进程可以拥有多个线程,一个线程必须有一个父进程。线程不拥有系统资源,只有运行必须的一些数据结构;它与父进程的其它线程共享该进程所拥有的全部资源。进程可以创建和撤消线程,从而实现程序的并发执行。一般,线程具有就绪、阻塞和运行三种基本状态。多线程的目的是为了最大限度的利用CPU资源。
同一进程的里多个子线程看似可以同步进行,其实不是同步的(由于CPU在同一时间内只能处理一个线程),他们可以访问父线程的资源与对象,这样一来的优点是可以实现子线程与子线程之间的通信并且可以节省内存空间,不必为每个子线程重新分配内存空间。但缺点是容易使得数据混乱,线程不安全。
java线程的创建与启动
一、线程创建的方法
1、扩展java.lang.Thread类。
2、实现java.lang.Runnable接口。
二、启动进程
调用start()方法。
在调用start()方法之前:线程处于新状态中,新状态指有一个Thread对象,但还没有一个真正的线程。
在调用start()方法之后:
启动新的执行线程(具有新的调用栈);
该线程从新状态转移到可运行状态;
当该线程获得机会执行时,其目标run()方法将运行。