美文网首页
2-线程的基础

2-线程的基础

作者: 极客123 | 来源:发表于2019-11-27 20:59 被阅读0次

1.进程和线程的区别:

一个程序至少有一个进程,一个进程至少有一个线程

2.概念:

进程:系统进行分配和管理资源的基本单位
线程:进程的一个执行单元,线程被称为轻量级进程,线程是程序执行的最小单位

对于java代码中出现的堵塞问题可以通过jconsole 查看 如下图(会看到具体的行数):


image.png

线程的状态:
参考源码Thread中state属性: 六种

image.png

Demo类

import org.omg.PortableServer.THREAD_POLICY_ID;

import java.io.IOException;

public class T_state {

    private static Object o = new Object();

    public static void main(String[] args) throws InterruptedException {


        /**
         * 第一条线程启动后等待较长时间,并将o对象锁定
         */
        Thread t1 = new Thread(() -> {
            synchronized (o) {
                try {
                    Thread.sleep(100000L);
                } catch (InterruptedException e) {
                }
            }
        });

        t1.start();

        /****
         * 线程2启动去获取o对象的锁
         */
        Thread t2 = new Thread(() -> {
            synchronized (o) {

            }
        });
        t2.start();

        /**
         * 主线程等待一下,让线程进入相应的状态
         */
        Thread.sleep(100L);

        /**
         * 查看线程状态:也可以通过jconsole查看
         */
        System.out.println(t2.getState());

    }

}

通过线程池启动一个线程

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class T_create {

    public static void main(String[] args) {
        ExecutorService ex = Executors.newSingleThreadExecutor();
        //通过线程池启动一条线程
        ex.execute(()->{
            System.out.println("=========="+ Thread.currentThread().getName());
        });
    }
}

相关文章

  • 2-线程的基础

    1.进程和线程的区别: 一个程序至少有一个进程,一个进程至少有一个线程 2.概念: 进程:系统进行分配和管理资源的...

  • 多线程

    1-JAVA多线程 2-生命周期 3-线程优先级 4-创建线程 5-Thread方法

  • 2-线程

    在一个进程的内部,要同时干多件事,就需要同时运行多个“子任务”,我们把进程内的这些“子任务”叫做线程 线程通常叫做...

  • 多线程并发编程2-基础2

    并发与并行 本文抛出的第一个问题就是何为并发?何为并行?并发,是指同一时间段多个任务同时都在执行,并都没有结束...

  • Object有哪些方法?

    1- 反射相关 getClass 2- 线程间通信 notify() notifyAll wait(long ti...

  • Java基础

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

  • 年薪50W阿里P7架构师必备知识:并发+JVM+多线程+Nett

    并发编程 线程基础、线程之间的共享和协作一 线程基础、线程之间的共享和协作二 线程的并发工具类 线程的并发工具类、...

  • Java-并发编程知识点总结

    目录: 线程基础 线程池 各种各样的锁 并发容器 原子类 Java 内存模型 线程协作 AQS 框架 一、线程基础...

  • Java线程2-线程池

    1,简介 1)线程池是运用最多的并发框架,几乎所有的异步操作或者并发执行任务都可以使用线程池。2)优势。降低资源消...

  • Java多线程总结 之 基础概念

    基础概念 序言 线程知识结构图 线程基础 什么是线程: 线程和进程的区别: 什么是同步: 并发和并行的区别: 什么...

网友评论

      本文标题:2-线程的基础

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