java是少数支持“多线程”的语言之一,他可以让不同程序块一起运行,已达到多任务处理的目的。
进程和线程的概念与联系:
进程的特征:1.一个进程就是一个执行中的程序,拥有一块独立的内存空间,一组系统资源。进程的内部数据和状态都是完全独立的。2.创建并执行一个进程的开销是很大的。3,进程是系统运行程序的基本单位
线程的特征:1.在java中,程序通过流控制来执行程序流,程序中单个顺序的流控制称为线程。2.多线程指的是在单个进程中可以同时运行多个不同的线程,执行不同的任务。他们的联系是二者都是一段完成某个特定功能的代码,不同的是同类的多个线程共享一块内存空间和一组系统资源,而线程本身的数据通常只有微处理器的寄存器数据,以及一个供程序执行时使用的堆栈。一个进程可以包含多个线程。创建线程可以通过继承Thread类,也可以通过实现Runnable接口来实现。
public class ThreadDemo
{
public static void main(String[] args){
new TestThread().start();
for(int i=0;i<10;i++){
System.out.println("main 多线程在运行");
}
}
}
class TestThread extends Thread
{
public void run(){
for(int i=0;i<10;i++){
System.out.println(TestThread在运行);
}
}
}
下面通过实现Runnable接口来创建
public class Threaddemo1
{
public static void main(String[] args){
TestThread t=new TestThread();
new Thread(t).start();
for(int i=0;i<10;i++){
System.out.println("main线程在运行");
}
}
}
class TestThread implements Runnable
{
public void run(){
for(int i<10;i++){
System.out.println("TestThread 在运行");
}
}
}
两种方法中,实现Runnable接口有几个显著的优势
1.适合多个程序代码的线程去处理同一资源情况2.可以避免由于java单继承带来的局限性3.增强了程序的健壮性。代码可以被多个线程共享,代码与数据是独立的
线程的状态分为:创建,就绪,运行,阻塞,终止。
关于线程的操作,可以去查API,它是很不多的学习工具。
关于后台线程的编写
public class ThreadDaemon
{
public static void main(String[] args){
ThreadTest test=new ThreadTest();
Thread t=new Thread(test);
t.setDaemon();
t.start();
}
}
class ThreadTest implements Runnable
{
public void run(){
while(true){
System.out.println(Thread.currentThread().getName+"is running");
}
}
}
线程有时为了实现同步,使用synchronized(对象){
需要同步的代码;
}
也可以使用同步方法
访问控制符 synchronized 返回值类型 方法名称(参数)
线程间的通信可以通过调用Object类的wait notify notifyAll等方法来实现
其实关于线程知识就只有这么一点,主要是你怎么去融会贯通,巧妙地应用它。
------- android培训 、 java培训 、期待与您交流! ----------