Java多线程研究01-创建线程

Posted zczpeng

tags:

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

线程与进程

● 操作系统支持的线程至少会有四种状态:就绪、执行、阻塞和终结。线程在四种状态下进行切换,都是要消耗不少的CPU计算能力的。
● 并且根据操作系统使用线程的进程的不一样,线程还分为用户线程和操作系统线程。操作系统线程(内核线程),是指操作系统内核为了完成硬件接口层操作,由操作系统内核创建的线程:例如I/O操作的内核线程,这些线程应用程序是不能干预的;用户线程,是指用户安装/管理的应用程序,为执行某一种操作,而由这个应用程序创建的线程。后文我们讨论的JAVA线程,都是用户级线程。
● 线程在创建时,操作系统不会为这个线程分配独立的资源(除了必要的数据支撑)。一个应用程序(进程)下的所有线程,都是共享这个应用程序(进程)中的资源,例如这个应用程序的CPU资源、I/O资源、内存资源。
● 现在基本上主流操作系统都支持多线程实现。即一个应用程序中(一个进程中),可以创建多个线程。一个应用程序下,各个线程间都可以进行通讯、可以进行状态互操作。且一个进程中,至少有一个线程存在。

JAVA中线程的几种状态

JAVA中最简单的线程示例

1:继承Thread父类

java.lang.Thread类是JAVA中用于实现线程操作的最基本的类之一。您可以创建一个集成Thread类的子类来定义您自己的线程实现:

package com.zczpeng.thread;
public class MyThreadDemo
    public static void main(String[] args) 
        new ThreadOne().start();
    

class ThreadOne extends Thread
    @Override
    public void run()
        long threadId = this.getId();
        System.out.println("线程"+threadId+"执行了");
    

2,实现Runnable接口

除了可以继承java.lang.Thread类来定义自己的线程外,您还可以实现java.lang.Runnable接口来定义一个线程(一般情况,我们优先使用这种方式):

public class MyThreadDemo
    public static void main(String[] args) 
        new Thread(new ThreadTwo()).start();
    

class ThreadTwo implements Runnable
    @Override
    public void run() 
        long threadId = Thread.currentThread().getId();
        System.out.println("线程"+threadId+"执行了");
    

以上是关于Java多线程研究01-创建线程的主要内容,如果未能解决你的问题,请参考以下文章

Java多线程01(Thread类线程创建线程池)

Java多线程系列目录(转)

Java多线程01

Java面试之多线程:Java创建多线程为什么只有一种方式?

Java面试之多线程:Java创建多线程为什么只有一种方式?

Java多线程-从基础到深入理解-01