美文网首页
java多线程基础

java多线程基础

作者: joshul | 来源:发表于2017-02-13 19:06 被阅读0次
进程与线程的区别
进程

进程简单的来说就是在内存中运行的应用程序,一个进程可以启动多个线程。
比如在windows中一个运行EXE文件就是一个进程。

线程

同一个线程中的进程共用相同的地址空间,同时共享进程所拥有的内存和其他资源。

线程Demo-继承Thread类

首先我们我们继承java.lang.Thread类来创建线程。

public class TestThread {
    public static void main(String[] args) {
        System.out.println("主线程ID是:" + Thread.currentThread().getId());
        MyThread my = new MyThread("线程1");
        my.start() ;
        
        MyThread my2 = new MyThread("线程2") ;
        /**
         * 这里直接调用my2的run()方法。
         */
        my2.run() ;
    }
}
class MyThread extends Thread {
    private String name;
    public MyThread(String name) {
        this.name = name;
    }
    @Override
    public void run() {
        System.out.println("名字:" + name + "的线程ID是="
                + Thread.currentThread().getId());
    }
}
主线程ID是:1
名字:线程2的线程ID是=1
名字:线程1的线程ID是=9

线程Demo-实现Runnable接口

除了继承java.lang.Thread类之外,我们还可以实现java.lang.Runnable接口来创建线程。

public class TestRunnable {
    public static void main(String[] args) {
        System.out.println("主线程的线程ID是"+Thread.currentThread().getId());
        MyThread2 my = new MyThread2("线程1") ;
        Thread t = new Thread(my) ;
        t.start() ;
        
        MyThread2 my2 = new MyThread2("线程2") ;
        Thread t2 = new Thread(my2) ;
        /**
         * 方法调用,并不会创建线程,依然是主线程
         */
        t2.run() ;
    }
}
class MyThread2 implements Runnable{
    private String name ;
    public MyThread2(String name){
        this.name = name ;
    }
    @Override
    public void run() {
        System.out.println("线程"+name+"的线程ID是"+Thread.currentThread().getId());
    }
    
    
}

主线程的线程ID是1
线程线程2的线程ID是1
线程线程1的线程ID是9

优雅的终止线程

有三种方法可以终止线程,如下:

  1. 使用退出标识,使线程正常的退出,也就是当run()方法完成后线程终止。
  2. 使用stop()方法强行关闭,这个方法现在已经被废弃,不推荐使用
  3. 使用interrupt()方法终止线程。
java多线程思维图
Paste_Image.png

相关文章

  • android 多线程 — 线程的面试题和答案

    这里都是我从各个地方找来的资料,鸣谢: Java多线程干货系列—(一)Java多线程基础 JAVA多线程和并发基础...

  • 技术体系

    一,java核心 java基础,jvm,算法,多线程,设计模式 Java基础:java基础相关,全栈java基础 ...

  • Java多线程目录

    Java多线程目录 Java多线程1 线程基础Java多线程2 多个线程之间共享数据Java多线程3 原子性操作类...

  • Java基础

    Java基础 集合基础 集合框架 多线程基础 多线程框架 反射 代理 集合基础 ArrayList LinkedL...

  • java多线程相关

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

  • Java多线程高级特性(JDK8)

    [TOC] 一、Java多线程 1.Java多线程基础知识 Java 给多线程编程提供了内置的支持。一条线程指的是...

  • Java多线程系列目录(共43篇)-转

    最近,在研究Java多线程的内容目录,将其内容逐步整理并发布。 (一) 基础篇 Java多线程系列--“基础篇”0...

  • Android中的多线程

    1. Java多线程基础 Java多线程,线程同步,线程通讯 2. Android常用线程 HandlerThre...

  • Java架构师阅读书单

    一、内功心法 Java基础: 《Java核心技术》《Java编程思想》《Effective Java》 多线程...

  • java学习路线

    javaSE java基础语法 java文件操作 java网络操作 java多线程 java数据库操作 java ...

网友评论

      本文标题:java多线程基础

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