多线程

Posted seedss

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程相关的知识,希望对你有一定的参考价值。

进程vs线程:

进程:每个程序被运行加载到内存之后,都会被操作系统作为一个进程,进程是处于运行过程中的程序,是具有独立功能,被操作系统进行资源分配和调度的独立单元。

线程:一个进程里面可以拥有多个线程,线程拥有自己的堆栈,程序计数器和自己的局部变量,但是不拥有系统资源,多个线程共享进程的系统资源。

创建线程的三种方式:

1.继承Thread类创建线程类

继承Thread类,重写run()方法,该run()方法就代表程序需要完成的任务。创建Thread子类的实例,即创建线程对象。然后通过start()方法启动线程。

 1 public class MyThread extends Thread {
 2     private int count;
 3 
 4     @Override
 5     public void run() {
 6 
 7         for (; count < 100; count ++) {
 8             System.out.println(getName() + "---" + count);
 9         }
10     }
11 
12     public static void main(String[] args) {
13         for (int i = 0; i < 100; i++) {
14             System.out.println(Thread.currentThread().getName() + i);
15             if (i == 20) {
16                 new MyThread().start();
17                 new MyThread().start();
18             }
19         }
20     }
21 }

2.实现Runnable接口来创建并启动多线程

继承Runnable接口,并重写该接口的run()方法。创建Runnable实现类的实例,并以此实例作为Thread的target来创建Thread类对象,该Thread类对象才是真正的多线程对象。然后调用start()方法来执行该Thread实例线程。

示例:

 1 public class MyRunableThread implements Runnable {
 2 
 3     private int count = 0;
 4 
 5     @Override
 6     public void run() {
 7         for (; count < 20; count ++){
 8             System.out.println(Thread.currentThread().getName() + "--" + count);
 9         }
10     }
11 
12     public static void main(String[] args){
13         for (int i=0; i<30; i++){
14             System.out.println(Thread.currentThread().getName() + "--" + i);
15             if (i == 20){
16                 MyRunableThread myRunableThread = new MyRunableThread();
17                 new Thread(myRunableThread, "子线程1").start();
18                 new Thread(myRunableThread, "子线程2").start();
19             }
20         }
21     }
22 }

 

以上是关于多线程的主要内容,如果未能解决你的问题,请参考以下文章

线程学习知识点总结

多个请求是多线程吗

python小白学习记录 多线程爬取ts片段

多线程编程

多线程编程

python多线程