DAY25-JAVA的多执行绪

在传统程序里,执行的方式总是必须顺着程序的流程进行,遇到if-else叙述就加以判断;遇到for、while等回圈就多绕几个圈圈,不管如何变化,最後程序还是循着一定的程序执行,且一次只能执行一个程序区块。

JAVA的「多执行绪」(multi-thread),是指程序执行的流程,「多执行绪」的机制可以同时执行多个程序区块,使程序执行的效率变的更高,也可以克服传统程序语言所无法设计的问题。

启动多执行绪
想要启动执行绪,必须准备好以下两件事:
(1)此类别必须是延伸自Thread类别,使自己成为他的子类别。
(2)执行绪的处理必须钻写在run()函数内。

Thread类别存放在java.lang类别库里,由於她会自动载入,因此我们不需特别载入java.lang类别库。此外,run()是定义在Thread类别里的一个函式,因此把执行绪的程序写在run()内,事实上就是执行改写(override)的动作。

class 类别名称 extends Thread{ //从Thread类别延伸出子类别
类别里的资料成员;
类别里的函式;
修饰子 run(); //改写Thread类别里的run()函式
{
以执行绪处理的程序;
}
}

public void run(){  //改写Thread类别里的run()函式
    for(int i=0;i<4;i++){
        for(int j=0;j<10000000000;j++){  //空回圈,用来拖慢下面 System.out.println的执行速度
            System.out.println(id+" is running..");
        }
    }
}    
...
public static void main(String args[]){
    Test dog = new Test("puppy");
    Test cat = new Test("kitten");
    dog.start();  //呼叫start(),而不是run()
    cat.start();  //呼叫start(),而不是run()
}

但哪一个字串先出现就不一定,全看谁先抢到CPU资源!事实上,在相同的环境内,甚至每次执行的结果也可能会不一样。

又是星期一啦......
疲惫又充实的一天:))
See U tomorrow~~

菜鸟工程师的体脂肪

菜鸟工程师也有分享食记,欢迎大家追踪喔~~
https://instagram.com/engineer_bodyfat?utm_medium=copy_link


<<:  [Day13]What is hash?

>>:  GitHub Autolinked references & Permanent link - 团队讨论的专业技巧

[Day9] 设计蒐集用户颜色偏好的简易对话流

基於昨天所阐述的简易对话流,我们今天来快速实作一个看看! 为求各位能迅速上手,我们将打造一个蒐集用户...

Day08 | Dart 中的非同步 - Isolate、Event loops

非同步指的到底是什麽? 在解释非同步(Asynchronous)之前,我们先来聊聊什麽是同步(syn...

{DAY 6} SQL 资料表的处理:Creating, Inserting & Updating

前言 今天要来处理SQL的schema 那什麽是schema呢? 从SQLBolt上查到的定义是:...

[Day3] Flutter - 改变容器风格 ( Container )

前言 Hi, 我是鱼板伯爵今天要教大家 Container 这个元件,教学内容只会撷取片段程序码,建...

[Day 25] keep-alive状态保留

今天这篇是延续上篇的动态元件~在动态元件切换的过程中,每当我们切换一个新的元件,旧元件的资料就会消失...