首页 > 编程语言 >Java 多线程复习

Java 多线程复习

时间:2024-09-13 22:23:41浏览次数:11  
标签:Java 复习 Thread 线程 进程 new 多线程 My

        Java Multi_Thread Review

package Multi_Thread_Review20240913;

import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.concurrent.FutureTask;

public class MultiThreadExercise1 {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        /*
        * 并发:单个CPU同时处理多个指令
        * 并行:多个CPU同时处理多个指令
        * */

        /*
        *  进程:正在运行的程序
        *  进程的独立性:进程是一个能够独立运行的基本单位,同时也是系统动态分配资源和调度的独立单位
        *  进程的动态性:进程的实质是程序的一次执行的过程,是动态产生,动态消亡的
        *  进程的并发性:任何进程都可以和其他进程并发执行
        *
        *
        *  线程:是进程中的单个顺序的控制流,是一条执行路径
        *  单线程:若一个进程只有一条执行路径,那么称为单线程程序
        *  多线程:若一个进程有多个执行路径,那么称为多线程程序
        *
        *
        * */

        /* 继承Thread类实现多线程 */
//        My_Thread1 myThread = new My_Thread1();
//        myThread.setName("A线程");
//        My_Thread1 myThread1 = new My_Thread1();
//        myThread1.setName("B线程");
//        myThread.start();
//        myThread1.start();
//
//        /* 实现Runnable接口实现多线程 */
//        My_Runnable myRunnable1 = new My_Runnable();
//        Thread thread1 = new Thread(myRunnable1);
//        thread1.setName("A线程");
//        Thread thread2 = new Thread(myRunnable1);
//        thread2.setName("B线程");
//        thread1.start();
//        thread2.start();

        /* 实现callable接口实现多线程 */
        /* FutureTask 是一个一次性任务,一旦一个线程开始执行它,其他线程就无法再执行同一个任务了 */
        My_Callable myCallable = new My_Callable();
        FutureTask future = new FutureTask(myCallable);
        Thread thread3 = new Thread(future);
        Thread thread4 = new Thread(future);
        thread3.setName("线程A");
        thread4.setName("线程B");
        thread3.start();
        thread4.start();
        System.out.println(future.get());


    }
}

标签:Java,复习,Thread,线程,进程,new,多线程,My
From: https://blog.csdn.net/Aishangyuwen/article/details/142231830

相关文章

  • ssm基于java的职工档案管理系统设计与实现
    系统包含:源码+论文所用技术:SpringBoot+Vue+SSM+Mybatis+Mysql免费提供给大家参考或者学习,获取源码请私聊我目录第1章绪论 11.1研究背景与意义 11.1.1研究背景 11.1.2研究意义 21.2国内外研究现状 21.2.1国外研究现状 21.2.2国内研究现状 31.3研究内容与方......
  • Java 21的Process API的笔记
    JavaCoreLibrariesProcessAPIProcessAPIClassesandInterfacesProcessBuilderClass指定新进程的命令,工作路径,环境变量,指定输入和输出流即stdin/stdout/stderr。ProcessClass提供操作子进程的方法,比如等待子进程结束。获取进程的信息比如是否存活、进程ID......
  • JAVA Response 返回值再拿
    一:概述在现代Web开发中,与外部服务交互是一个常见的需求。Java作为一门广泛使用的编程语言,提供了多种方法来发送HTTP请求并处理响应。本文将探讨在Java中获取HTTP响应的不同方法,并提供实际案例。二:具体说明<1>使用java.net.HttpURLConnectionHttpURLConnection是Java标准库中一个古......
  • Java学习全套视频教程网盘资源下载
    如大家所了解的,Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序。Java之所以可以让计算机识别,是因为Java的编译器和Java虚拟机,它会将人按照一定规范写成的信息翻译成机器所能识别二进制的信息,这样就可以让我们很好的和计算机进......
  • Java Server Page动态包含与重定向
    一、动态包含需求:我希望能够在我的页面中包含一个音频分析:在页面被请求的时候动态地包含另一个JSP页面或者静态资源(如HTML页面、图片等)的内容。假设我已经有一个名为audio.jsp的页面。当服务器处理包含<jsp:includepage="audio.jsp"/>的JSP页面时,它会将audio.jsp页面的......
  • Python 多线程
    开始学习Python线程线程模块使用Threading模块创建线程线程同步线程优先级队列(Queue)多线程类似于同时执行多个不同程序,多线程运行有如下优点:使用线程可以把占据长时间的程序中的任务放到后台去处理。用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事......
  • 为什么在EffectiveJava中建议用EnumSet替代位字段,以及使用EnumMap替换序数索引
    在EffectiveJava中的第36条中建议用EnumSet替代位字段,在第37条中建议用EnumMap替换序数索引,为什么?EnumSet在EffectiveJava中的第36条中建议用EnumSet替代位字段36、用EnumSet替代位字段如果枚举类型的元素主要在Set中使用,传统上使用int枚举模式,通过不同的......
  • Java方法:重载
    重载是在一个类中,有相同的函数名称,但是形参不同的函数。方法的重载的规则:方法名称必须相同。参数列表必须不同(个数不同、类型不同、参数排列顺序不同等)。方法的返回类型可以相同也可以不同。仅仅返回类型不同不足以成为方法的重载。实现理论:方法名称相同时,编译器会根......
  • 学习笔记 韩顺平 零基础30天学会Java(2024.9.13)
    P545TreeMap源码解读     TreeSet的k-v其中的v是一个静态的对象,但是TreeMap的v是可以变化的     TreeMap使用默认构造器取出的顺序和添加的顺序是不一样的,但是有构造器实现了Comparator接口的匿名内部类,可以按顺序排序P546Collections工具类1P547Collect......
  • 为什么在EffectiveJava中建议用EnumSet替代位字段,以及使用EnumMap替换序数索引
    在EffectiveJava中的第36条中建议用EnumSet替代位字段,在第37条中建议用EnumMap替换序数索引,为什么?EnumSet在EffectiveJava中的第36条中建议用EnumSet替代位字段36、用EnumSet替代位字段如果枚举类型的元素主要在Set中使用,传统上使用int枚举模式,通过不同的2的......