黑马程序员_java语言的多线程

时间:2023-02-20 10:03:31
------- android培训 java培训 、期待与您交流! ----------

        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培训 、期待与您交流! ----------