美文网首页
多线程01

多线程01

作者: JR_咖啡少年 | 来源:发表于2016-07-31 17:06 被阅读6次

1.什么是进程?

可以理解为正在进行的程序。更专业的解释是:(右键任务管理器)其实对应的是应用程序在内存中开辟的空间。一个程序一旦开辟空间就意味着它在运行。进程只是负责开辟空间,不直接执行。

2.什么是线程?

线程:负责执行,负责进程中程序执行的控制单元。(又叫执行路径,执行情景。)

注意:
(1)一个进程中不可能没有线程。可以同时有多个执行路径,称为多线程。     
(2)一个进程至少要有一个线程。
(3)开启多个线程是为了同时运行多个代码,每一个线程都有自己的内容,这个内容称为任务。
例子:360体检和垃圾清理同时进行

3.多线程的创建

 多线程的创建。线程就是执行代码的,并发就是同时。
 *创建线程步骤:
 1.一个类继承Thread类
 2.覆盖Thread类中的run方法
 3.直接创建Thread类的子类对象 
 4.调用start方法开启线程,并调用线程的任务run方法执行

代码1:


// 线程的使用
public class Class1 {

    public static void main(String[] args) {
        c1();
    }

    // Runnable接口方式
    public static void c2() {
        MyThread myThread = new MyThread();
        // 最后开启线程,调用start方法
        new Thread(myThread).start();

        for (int i = 1; i <= 10; i++) {
            System.out.println("Class1类:" + i);
        }

    }

    // Thread类方式
    public static void c1() {
        // 创建一个线程,实现方法一:继承Thread
        TestThread testThread = new TestThread();
        // 开启线程,调用线程的run()方法。
        testThread.start();

        for (int i = 1; i <= 10; i++) {
            System.out.println("Class1类:" + i);
        }

        // 重新开始线程,重新new。
        testThread = new TestThread();
        testThread.start();
    }
}

代码2:

// 线程优先级
public class Class2 {

    public static void main(String[] args) {

        ThreadA threadA = new ThreadA();
        ThreadB threadB = new ThreadB();

        threadA.setPriority(Thread.MAX_PRIORITY);
        threadB.setPriority(Thread.NORM_PRIORITY);

        threadA.start();
        threadB.start();

        System.out.println("main结束");

        if (threadA.isAlive()) {
            System.out.println("A线程运行");
        } else {
            System.out.println("A线程没有执行");
        }
    }

    private int age = 10;

    // 20
    public void testThis(int age) {
        this.age = age;
    }

    public static class ThreadA extends Thread {

        @Override
        public void run() {
            for (int i = 0; i < 5; i++) {
                System.out.println("A线程:" + i);
            }
        }
    }

    public static class ThreadB extends Thread {
        @Override
        public void run() {
            for (int i = 0; i < 5; i++) {
                System.out.println("B线程:" + i);
            }
        }
    }
}


相关文章

  • iOS多线程04-NSOperation实践

    推荐文章 iOS多线程01-介绍iOS多线程02-NSThread实践iOS多线程03-GCD实践iOS多线程04...

  • 多线程

    1.多线程技术01

  • python多线程基础

    多线程准备脚本test01 多线程准备脚本test02 多线程准备脚本test03 多线程准备脚本test04 1...

  • java多线程相关

    (一) 基础篇 01.Java多线程系列--“基础篇”01之 基本概念 02.Java多线程系列--“基础篇”02...

  • 多线程

    进程/线程/串行/多线程的概念、原理以及多线程的优劣/多线程在iOS的应用和使用方式请参考CC老师系列文章:01 ...

  • Day18 多线程

    01.多线程技术1 02.多线程技术2 03.多线程应用 04.join 函数 耗时操作 1.耗时操作放到主线程中...

  • 多线程01

    多线程1 进程: 概念:系统中正在运行的一个应用程序 特点:每个进程都是独立的,运行在自己独有的且受保护的内存空间...

  • 多线程01

    1.什么是进程? 可以理解为正在进行的程序。更专业的解释是:(右键任务管理器)其实对应的是应用程序在内存中开辟的空...

  • 2020-02-07--雪山飞狐19--多线程

    01,多线程四个命令? 02,许可证使用原则!

  • iOS 开发之多线程

    iOS实现多线程的4套方案 1、pthread 01 特点: (1)一套通用的多线程api (2)适用于Unix\...

网友评论

      本文标题:多线程01

      本文链接:https://www.haomeiwen.com/subject/antxsttx.html