多线程-线程的介绍和基本的创建
Posted it江湖之旅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程-线程的介绍和基本的创建相关的知识,希望对你有一定的参考价值。
1.什么是线程
线程是cpu执行的最小单元,每一个线程都有自己的局部变量表,程序计数器以及各自的生命周期。
2.为什么要多线程的编程
1.目前的机器基本都是多核的,多线程编程可以并行执行提高程序的性能
2.多线程编程也可以提高cpu的利用率
3.实现线程的4中方式
1)继承Thred类
public class MyThread extends Thread{ @Override
public void run() {
System.out.println(this.currentThread().getName());
}
}//匿名内部类的方式进行创建
Thread thread = new Thread(new Runnable() { public void run() { for (int i = 0; i< 10; i++) {
System.out.println("i:" + i);
}
}
});
thread.start();
2)实现Runable接口
public class MyThread1 implements Runnable{ @Override
public void run() {
System.out.println("线程开始运行"+Thread.currentThread().getId()+"="+Thread.currentThread().getName());
}
}
3)实现Callable接口
class Mythread3 implements Callable{ private String name; @Override
public Object call() throws Exception {
return "你好";
}
}
4)使用线程池进行创建
Java通过Executors提供四种线程池,分别为:
1)newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
2)newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
3)newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。
4)newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
4.线程常用线程api方法
常用线程api方法 | |
start() | 启动线程 |
currentThread() | 获取当前线程对象 |
getID() | 获取当前线程ID Thread-编号 该编号从0开始 |
getName() | 获取当前线程名称 |
sleep(long mill) | 休眠线程 |
Stop() | 停止线程, |
常用线程构造函数 | |
Thread() | 分配一个新的 Thread 对象 |
Thread(String name) | 分配一个新的 Thread对象,具有指定的 name正如其名。 |
Thread(Runable r) | 分配一个新的 Thread对象 |
Thread(Runable r, String name) | 分配一个新的 Thread对象 |
5.多线程的应用场景
处理大量数据的时候,可以进行分批进行多线程的处理,从而提高代码的执行效率
1.给图片加水印
2.多线程分批发送短信
3.多线程分批下载文件
等等,场景太多了
以上是关于多线程-线程的介绍和基本的创建的主要内容,如果未能解决你的问题,请参考以下文章