首页 > 代码库 > Java线程基础
Java线程基础
一个线程运行一个顺序程序。
在java中,线程一般是java.lang.Thread的子类,它提供了一些方法来创建线程、启动线程。
挂起线程、等待线程完毕。
首先,创建一个实现Runnable接口的类,该类的run()方法完毕全部的工作。比如。以下是一个打印字符串的简单线程。
package lou.thread; public class HelloWorld implements Runnable { String message; public HelloWorld(String m) { this.message = m; } @Override public void run() { System.out.println(message); } }
我们能够以一个Runnable对象作为參数来调用Thread类的构造函数,将Runnable对象转变为线程。例如以下所看到的:
String m = "Hello world form Thread " + i; Thread thread = new Thread(new HelloWorld(m));
java提供一种语法上的快捷方式,称为匿名内部类,它能让你无需显示地定义HelloWorld类:
final String m = "Hello world form Thread " + i; thread = new Thread(new Runnable() { @Override public void run(){ System.out.println(m); } });
上面的程序段创建一个实现Runnable接口的匿名类,其run()方法的行为已描写叙述,当线程创建之后,它须要被启动:
thread.start();
这种方法能使线程执行。
调用该方法的线程将马上返回。假设调用者打算等待线程结束。怎必须连接线程:
thread.join();
此时调用者会被堵塞直到线程的run()方法返回。
以下给出一个可以初始化多线程、启动多线程、等待多线程完毕、然后打印一条消息的方法。
该方法创建一个线程组成的数组。并使用匿名内部类
语法进行初始化。在循环结束时。则创建了一个休眠线程组成的数组。
public static void main(String[] args) throws InterruptedException { Thread[] thread = new Thread[8]; for (int i = 0; i < thread.length; i++) { final String message = "Hello from thread " + i; thread[i] = new Thread(new Runnable() { @Override public void run() { System.out.println(message); } }); } for (int i = 0; i < thread.length; i++) { thread[i].start(); } for (int i = 0; i < thread.length; i++) { thread[i].join(); } }
Java线程基础
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。