java 并发编程(1)

java_thread

线程的概念

线程是进程中可以独立执行的最小单位。

为什么需要多线程

下面是一个简单事例,也比较贴近生活,平时我只要休息就会在家做饭。喜欢做饭有时候做饭也是一门艺术。一种实用艺术,不同通过外观而且通过味道给家人以感受。也算是 2 维艺术。

我们做饭也是有程序,买菜->洗菜->切菜->下锅 ,我家厨房不大,一个人正好所以我通常是按顺序一件件的搞,知道菜肴上桌。

这里定义了两个函数分别是

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

    private static void prepareVegatable(){
        try {
            println("Begin prepare some Vegatable.");
            Thread.sleep(1000 * 10L);

        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        println("ready to cooking");
    }

    private static void doSomeCooking(){
        try {
            println("Begin do some cooking");
            Thread.sleep(1000 * 10L);

        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        println("ready to have supper");
    }

    private static void println(String messsage){
        System.out.println(messsage);
    }
Begin prepare some Vegatable.
ready to cooking
Begin do some cooking
ready to have supper

每一项工作都是耗时,所以是时间的顺延。想一想自家这样做还可以。不过要是开饭店就差远了。这样即使做的再好吃在失去耐心的现代人面前你也得因为等待时间太长而流失客户。
关键是缺人手,所谓缺人手也不一定是人,机器人现在也能做。也就是缺做任务的。线程所要完成的计算被称为任务。

        Thread t1 = new Thread(){
            @Override
            public void run() {
                prepareVegatable();
            }
        };
        t1.start();

        Thread t2 = new Thread(){
            @Override
            public void run() {
                doSomeCooking();
            }
        };
        t2.start();

这里我们多人手,工作也就是同时进行了,有关 Thread 创建的内容,随后详细说明。
不是随后就是现在,随后我们会根据源码一个一个地理解 Thread 构造方法和常用方法。

        Thread thread = new Thread(){
            @Override
            public void run() {
                for (int i = 0; i < 100; i++) {
                    System.out.println("running on created thread" + i);
                    
                }
            }
        };
        thread.start();

程序启动 JVM 会为程序创建其主线程。

  • 创建 Thread ,可以 Thread 进行命名
  • 重写 Thread 的 Run 方法
  • 调用其 start 方法,注意 start 只能调用一次


    thread
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 基本知识一 线程优先级二 线程的状态三 线程函数四 线程间通信 参考:java并发编程的艺术 一 线程优先级 线程...
    梦工厂阅读 1,891评论 0 5
  • 1. 并发编程 1.1 并发编程的挑战 并发编程的目的是为了加快程序的运行速度, 但受限于上下文切换和死锁等问题,...
    沪上最强亚巴顿阅读 5,910评论 0 27
  • 多线程编程大家都觉得比较新鲜而又比较陌生,对于多线程编程的使用场景也不太了解,这个java并发编程系列的文章会从基...
    monkey01阅读 1,373评论 0 0
  • 本文目录 故事缘由 synchronized 关键字学习什么是 synchronized ?synchronize...
    蒋古申阅读 5,418评论 0 2
  • 前言:Java并发编程是面试官很喜欢问的一块。因此写了一些笔记记录一下学习过程。没有很深的原理,但是大概也能入个们...
    __y阅读 3,173评论 0 3

友情链接更多精彩内容