Java线程

实现线程的两种方式

Thread类

Thread类是在java.lang包中定义:

一个类只要继承Thread类,同时覆写run()方法,就可以实现多线程。

使用如下方法启动一个线程:

public void start()

native关键字,表示可以调用操作系统底层函数,这种技术又称JNI技术(Java Native Interface)

Runnable接口

Runnable中只有一个方法:

void run()

通过Thread类来启动Runable实现的多线程

Public Thread(Runnable tatget)

设置和取得线程名字

在Thread类中存在以下几个方法:

设置名字:

public final void setName(String name)

      构造方法:

      public Thread(Runnable target,String name)

      public Thread(String name)

取得名字:

public final String getName()

由于线程操作的不确定性,可以通过如下方法取得当前的操作线程

public static Thread currentThread()

让线程休眠

public static void sleep(long millis) throws InterruptedException

让线程中断

public void interrupt()

设置线程优先级

public final void setPriority(int newPriority)

public final int getPriority()

  最高:public static final int MAX_PRIORITY

  中等:public static final int NORM_PRIORITY

  最低:public static final int MIN_PRIORITY

同步与死锁

同步代码块:

synchronized关键字进行同步代码块声名,使用此操作时必须明确指出到底要锁定的是那个对象,一般是以当前对象为主。

synchronized(对象){

        //需要同步的代码;

}

同步方法:

例如:

public synchronized void test(){

}

 方法的定义完整格式

[访问权限[public][protected][default][private]]

[static][final][abstract][synchronized][native]

返回值类型|void

方法名称([参数列表])[throws 异常1,异常2,...]{

}

死锁

死锁: 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去

原文地址:https://www.cnblogs.com/mingluosunshan/p/3217004.html