Java 记录(7)多线程使用【异步】

希望能写一些简单的教程和案例分享给需要的人

java 多线程:

线程是程序中的执行线程。Java虚拟机允许应用程序同时运行多个执行线程。

每个线程都有优先级。优先级较高的线程优先于优先级较低的线程执行。每个线程也可以标记为守护进程,也可以不标记为守护进程。当在某些线程中运行的代码创建新的线程对象时,新线程的优先级最初设置为与创建线程的优先级相等,并且当且仅当创建线程是守护进程时,新线程才是守护进程线程。

程序结构:

application.java : 入口程序
SendThread.java : 第一种:继承的方法
SendThread2.java :第二钟:将类加入线程

Java 记录(7)多线程使用(异步)_java

两种方法:

  1. 写一个类继承我们的 Thread 类,通过这个方式来实现异步/多线程
  2. 写一个类,将这个类加入到创建的线程中运行

代码:

application.java

package com.daolizhe;

public class application {
public static void main(String[] args) {
// 写一个类继承我们的 Thread 类,通过这个方式来实现异步/多线程
for (int i = 0; i < 5; i++) {
SendThread sendThread = new SendThread("Thread循环发送(异步):" + i);
sendThread.start();
}
// 写一个类,将这个类加入到创建的线程中运行
for (int i = 0; i < 5; i++) {
SendThread2 sendThread2 = new SendThread2("Thread2循环发送(异步):" + i);
new Thread(sendThread2).start();
}
}
}

SendThread.java

package com.daolizhe;

public class SendThread extends Thread {
String msg;

/**
* 线程参数
* @param msg 需要发送(打印)的消息
*/
public SendThread(String msg) {
this.msg = msg;
}

/**
* 线程运行的方法
*/
public void run() {
System.out.println(this.msg);
}
}

SendThread2.java

package com.daolizhe;

public class SendThread2 implements Runnable {

String msg;

/**
* 线程参数
*
* @param msg 需要发送(打印)的消息
*/
public SendThread2(String msg) {
this.msg = msg;
}

/**
* 线程运行的方法
*/
public void run() {
System.out.println(this.msg);
}
}

Thread循环发送(异步):0
Thread循环发送(异步):1
Thread循环发送(异步):2
Thread循环发送(异步):3
Thread循环发送(异步):4
Thread2循环发送(异步):0
Thread2循环发送(异步):2
Thread2循环发送(异步):1
Thread2循环发送(异步):3
Thread2循环发送(异步):4

运行结果

Java 记录(7)多线程使用(异步)_jvm_02