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面试之多线程:Java创建多线程为什么只有一种方式?