zoukankan      html  css  js  c++  java
  • JAVA打jar包和线程

    jar包打包有很多中其中有用命令 jar cvf 指定java文件 名称       和Linux tar打包是一样的 

    jar包打包成功后,点击MANIFEST文件 加入参数  Main-Class:  指定初始启动类

    THread是个生成线程的类,他包含有对象name;实现THread,必须包含run方法

    有俩个方式实现线程:

    方式一 :
        1. 自定义一个类继承Thread类。
        2. 重写Thread类的run方法,把自定义线程的任务代码写在run方法上。
        3. 创建Thread的子类对象,并且调用start方法启动一个线程。
            
        注意:千万不要直接调用run方法,调用start方法的时候线程就会开启,线程一旦开启就会执行run方法中代码,如果直接调用
        run方法,那么就 相当于调用了一个普通的方法而已。

    方式二:
        1. 自定义一个类实现Runnable接口。
        2. 实现Runnable接口 的run方法,把自定义线程的任务定义在run方法上。
        3. 创建Runnable实现类对象。
        4. 创建Thread类 的对象,并且把Runnable实现类的对象作为实参传递。
        5. 调用Thread对象 的start方法开启一个线程。。

    synchronized(锁对象){
    需要同步的代码

    同一个时间内,只能有一个线程访问被锁住的代码部分,synchronized可以修饰一个函数


    wait():一个线程如果执行了wait方法,那么该线程就会进去一个以锁对象为标识符的线程池中等待
    notify():如果一个线程执行notify方法,那么就会唤醒以锁对象为标识符的线程中等待线程其中一个

    join():加入一个新的线程; 一个线程如果执行join语句,那么就有新的线程加入,执行该语句的线程必须要让步给新加入的线程先完成任务,然后才能继续执行

  • 相关阅读:
    SpringBoot 项目 打包为 Docker镜像
    0/1 nodes are available: 1 node(s) had taints that the pod didn't tolerate.
    注册k8s到rancher时 agent pods一直处于containercreating状态
    linux查看磁盘使用情况
    linux修改系统时间、时区
    windows 添加路由
    Notebook Docker 安装spark环境
    openlayers6加载天地图混乱问题
    Oracle 高效分页
    VSCode 终端无法打开
  • 原文地址:https://www.cnblogs.com/liyong999/p/7739519.html
Copyright © 2011-2022 走看看