多线程-线程的介绍和基本的创建

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.多线程分批下载文件

等等,场景太多了


以上是关于多线程-线程的介绍和基本的创建的主要内容,如果未能解决你的问题,请参考以下文章

C#多线程之旅——介绍和基本概念

多线程 Thread 线程同步 synchronized

php Pthread 多线程 基本介绍

C#多线程之旅

Java多线程概述及创建

多个请求是多线程吗