线程1

Posted 大佛拈花-GoSaint

tags:

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

  写本系列的目是为了重新梳理这部分内容;而且我的最初的目的是为了搞懂Java中的异步的实现方式,其中要使用到Callable这个类。

1 线程的第一种创建方式

  在JavaAPI中明确的规定了创建线程存在两种方式,可是在实际的开发过程中或者面试问到的问题时回答两种通常不能令人满意。而且我对于第三种确实是不太熟悉的。

  线程在Java中使用Thread类来表示;创建线程之后需要启动线程,因此方法start()就是启动线程的方式,至于我们的线程究竟要干什么,则是在run()方法中编写。

package com._thread;

/**
 * 创建线程的第一种方式:继承Thread类
 * @author gosaint
 *
 */
public class ThreadDemoNo1 extends Thread{
    /**
     * 在这里我们编写线程要干的事。我让线程打印50次我在玩游戏
     * this.getName()返回当前线程的名称
     */
    @Override
    public void run() {
        for (int i = 0; i < 50; i++) {
            System.out.println(this.getName()+"我在玩游戏"+i);
        }
    }
    /**main方法是主线程,当i=10的时候我启动线程*/
    public static void main(String[] args) {
        for (int i = 0; i < 50; i++) {
            System.out.println("我在听音乐!"+i);
            if(i==10){
                // Thread(Runnable target) 该构造器中的参数是Runnable接口对象
                // 恰好是我们的Thread的子类
                Thread t=new ThreadDemoNo1();
                new Thread(t).start();//启动线程
            }
        }
    }

}

执行结果如下:

我在听音乐!0
我在听音乐!1
我在听音乐!2
我在听音乐!3
我在听音乐!4
我在听音乐!5
我在听音乐!6
我在听音乐!7
我在听音乐!8
我在听音乐!9
我在听音乐!10
我在听音乐!11
我在听音乐!12
我在听音乐!13
我在听音乐!14
我在听音乐!15
我在听音乐!16
Thread-0我在玩游戏0
Thread-0我在玩游戏1
Thread-0我在玩游戏2
Thread-0我在玩游戏3
Thread-0我在玩游戏4
Thread-0我在玩游戏5
我在听音乐!17
Thread-0我在玩游戏6
Thread-0我在玩游戏7
Thread-0我在玩游戏8
Thread-0我在玩游戏9
Thread-0我在玩游戏10
Thread-0我在玩游戏11
Thread-0我在玩游戏12
Thread-0我在玩游戏13
Thread-0我在玩游戏14
Thread-0我在玩游戏15
Thread-0我在玩游戏16
Thread-0我在玩游戏17
Thread-0我在玩游戏18
Thread-0我在玩游戏19
Thread-0我在玩游戏20
Thread-0我在玩游戏21
Thread-0我在玩游戏22
Thread-0我在玩游戏23
Thread-0我在玩游戏24
Thread-0我在玩游戏25
Thread-0我在玩游戏26
Thread-0我在玩游戏27
Thread-0我在玩游戏28
Thread-0我在玩游戏29
Thread-0我在玩游戏30
Thread-0我在玩游戏31
Thread-0我在玩游戏32
Thread-0我在玩游戏33
Thread-0我在玩游戏34
Thread-0我在玩游戏35
Thread-0我在玩游戏36
Thread-0我在玩游戏37
我在听音乐!18
Thread-0我在玩游戏38
Thread-0我在玩游戏39
Thread-0我在玩游戏40
Thread-0我在玩游戏41
Thread-0我在玩游戏42
Thread-0我在玩游戏43
Thread-0我在玩游戏44
Thread-0我在玩游戏45
Thread-0我在玩游戏46
Thread-0我在玩游戏47
Thread-0我在玩游戏48
Thread-0我在玩游戏49
我在听音乐!19
我在听音乐!20
我在听音乐!21
我在听音乐!22
我在听音乐!23
我在听音乐!24
我在听音乐!25
我在听音乐!26
我在听音乐!27
我在听音乐!28
我在听音乐!29
我在听音乐!30
我在听音乐!31
我在听音乐!32
我在听音乐!33
我在听音乐!34
我在听音乐!35
我在听音乐!36
我在听音乐!37
我在听音乐!38
我在听音乐!39
我在听音乐!40
我在听音乐!41
我在听音乐!42
我在听音乐!43
我在听音乐!44
我在听音乐!45
我在听音乐!46
我在听音乐!47
我在听音乐!48
我在听音乐!49

 

  

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

多个用户访问同一段代码

JUC并发编程 共享模式之工具 JUC CountdownLatch(倒计时锁) -- CountdownLatch应用(等待多个线程准备完毕( 可以覆盖上次的打印内)等待多个远程调用结束)(代码片段

活动到片段方法调用带有进度条的线程

线程学习知识点总结

线程上的Android片段替换(...)

分析定位占用CPU资源高的JVM线程