Java多线程
Posted 知行合一
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java多线程相关的知识,希望对你有一定的参考价值。
进程和线程一样,都是实现并发的一个基本单位。线程是比进程更小的执行单位,线程是在进程的基础上进行的进一步划分。所谓多线程,是指一个进程在执行过程中可以产生多个更小的程序单元,这些更小的单元称为线程,这些线程可以同时存在、同时运行。
Tread类中的主要方法:
序 号 | 方法名称 | 类 型 | 描 述 |
1 | public Thread(Runnable target) | 构造 | 接收Runnable接口子类对象,实例化Thread对象 |
2 | public Thread(Runnable target, String name) | 构造 | 接收Runnable接口子类对象,实例化Thread对象,并设置线程名称 |
3 | public Thread(String name) | 构造 | 接收Runnable接口子类对象,并设置线程名称 |
4 | public static Thread currentThread() | 普通 | 返回目前正在执行的线程 |
5 | public final String getName() | 普通 | 返回线程的名称 |
6 | public final int getPriority() | 普通 | 返回线程的优先级 |
7 | public boolean isInterrupted() | 普通 | 判断目前线程是否被中断,如果是返回true,否则返回false |
8 | public final boolean isAlive() | 普通 | 判断线程是否在活动,如果是返回true,否则返回false |
9 | public final void join() throws Interrupted Exception | 普通 | 等待线程死亡 |
10 | public final synchronized void join(long millis) throws Interrupted Exception | 普通 | 等待millis毫秒后,线程死亡 |
11 | public void run() | 普通 | 执行线程 |
12 | public final void setName(String name) | 普通 | 设定线程名称 |
13 | public final void setPriority(int newPriority ) | 普通 | 设定线程的优先级 |
14 | public static void sleep(long millis) throws InterruptedException | 普通 | 使目前正在执行的线程休眠millis毫秒 |
15 | public void start() | 普通 | 开始执行线程 |
16 | public String toString() | 普通 | 返回代表线程的字符串 |
17 | public static void yield() | 普通 | 将目前正在执行的线程暂停,允许其他的线程执行 |
18 | public final void setDaemon(boolean on) | 普通 | 将一个线程设置成后台运行 |
在Java中实现线程操作有两种方式,一种是继承Tread类,另一种是实现Runnable接口。如果一个类继承Thread类,则不适合于多个线程共享资源,而实现了Runnable接口,就可以方便的实现资源的共享。两种都需要实现run()方法。而启动则使用start()方法。
class MyThread extends Thread{属性...; 方法...; public void run(){线程主体;}}
class MyThread implements Runnable{属性...; 方法...; public void run(){线程主体;}}
线程的状态:
创建状态 Thread thread = new Thread();
就绪状态 thread.start();
运行状态 调用run()方法后
堵塞状态 调用sleep()、suspend()、wait()等方法后
死亡状态 调用stop()方法时或run()方法执行结束后。
取得线程的名称:Thread.currentThread().getName(); //currentThread()是静态方法
主方法实际上也是一个线程,一般而言,主方法的优先级高于其它线程。
以上是关于Java多线程的主要内容,如果未能解决你的问题,请参考以下文章