package Thread02;
public class JoinThread extends Thread {
// 为线程命名
public JoinThread(String name) {
super(name);
}
public void run() {
for (int i = 0; i <= 10; i++) {
System.out.println(Thread.currentThread().getName() + " " + i);
}
}
}
package Thread02;
public class Test {
public static void main(String[] args) throws Exception {
new JoinThread("新的小线程").start();
for (int i = 0; i <10; i++) {
if (i==5) {
JoinThread jjj= new JoinThread("被 join的县城");
jjj.start();
//新线程和主线程会被阻塞,阻塞停止后会进入就绪状态
jjj.join();
}
System.out.println(Thread.currentThread().getName()+" "+ i);
}
}
}
后台线程 :
package Thread03;
public class BackGroudThread implements Runnable {
public void run() {
for (int i = 0; i < 10000; i++) {
System.out.println("后台线程执行第" + i + "次");
try {
Thread.sleep(7);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
package Thread03;
public class MyThread extends Thread {
// 使用继承Thread类的创建方式创建线程
// run():函数,线程的执行部分
public void run() {
for (int i = 0; i <= 4; i++) {
System.out.println("线程第" + i + "次执行");
try {
Thread.sleep(7);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
package Thread03;
public class Test {
public static void main(String[] args) {
Thread t1=new MyThread();
Thread t2= new Thread(new BackGroudThread());
t2.setDaemon(true);//设置为守护线程
t2.start();
t1.start();
}
}
4:::::
package Thread04;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
ThreadYeild ty= new ThreadYeild("线程一");
ThreadYeild ty2= new ThreadYeild("线程二");
ty.start();
ty2.start();
}
}
package Thread04;
public class ThreadYeild extends Thread {
String name;
public ThreadYeild(String name) {
super(name);
this.name = name;
}
public void run() {
for (int i = 0; i < 50; i++) {
System.out.println(this.getName() + " " + i);
if (i == 30) {
Thread.yield();
}
}
}
}