线程
一、创建线程的几种方法
public class test1 {
public static void main(String[] args) {
//创建线程的3种方式:
//方式1
Thread th1 = new Thread(){
@Override
public void run() {
System.out.println("线程th1开执行了");
}
};
th1.start();
//方式2
new Thread(){
@Override
public void run() {
System.out.println("线程开始执行了");
}
}.start();
//方式3
new Thread("线程2"){
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"开始执行了");
}
}.start();
}
}
运行结果:
线程th1开执行了
线程开始执行了
线程2开始执行了
二、找出(比较)两个集合中的相同元素
package zijiqiaodedaimajihe;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
//1.找出两个文件中相同的单词
//2.多线程共同复制一个文件。
//3.12A34B56D....
public class test2 {
public static void main(String[] args) throws FileNotFoundException {
File file = new File("C:\\Users\\兔qing\\Desktop\\a.txt");
Scanner scanner = new Scanner(file);
ArrayList<String> alist= new ArrayList<>();
while (scanner.hasNext()){
String s = scanner.nextLine();
String[] arr = s.split(" ");
for(String ele:arr){
alist.add(ele);
}
}
System.out.println(alist);
System.out.println("=======================================");
File file2 = new File("C:\\Users\\兔qing\\Desktop\\b.txt");
Scanner scanner1 = new Scanner(file2);
ArrayList<String> blist = new ArrayList<>();
while (scanner1.hasNext()){
String s1 = scanner1.nextLine();
String[] arr1 = s1.split(" ");
for(String ele:arr1){
blist.add(ele);
}
}
System.out.println(blist);
//取交集,如果元素相同,则前者集合中仅仅保留相同的元素,如果不同则前者集合为空。
boolean b = alist.retainAll(blist);
System.out.println(alist);
}
}
线程的几种状态
- 新建:
线程被创建出来 - 就绪:
具有CPU的执行资格, 但是不具有CPU的执行权 - 运行:
具有CPU的执行资格, 也具有CPU的执行权 - 阻塞:
不具有CPU的执行资格, 也不具有CPU的执行权 - 死亡:
不具有CPU的执行资格, 也不具有CPU的执行权