zoukankan      html  css  js  c++  java
  • java 中的多线程简单介绍

    package com.zxf.demo;
    /*
     * 多线程的实现方式两种?
     * 一、.实现 runnable  接口
             * 2.重写run方法                Run():当一个线程启动后,就会自动执行该方法
             * 3.在主方法中new一个           java 对象  Demo01 demo01=new Demo01();
             * 4.将其放在  thread中        Thread t1=new Thread(demo01);    
             * 5.调用start方法            t1.start();
     * 
     *     使用麻烦
     *     避免了单继承的局限性
     * 
     *二、继承Thread父类:
     *        缺点:单继承的局限性
     *         优点:使用方便
     * 
     * 
     三、五种状态?
     * 创建  就绪  运行 阻塞 死亡!
     * 
     * 
     四、 常用方法?
     * 1.setpriority(int newPriority)        更改优先级。增大可能性。【1-10】5
     * 2.sleep ();                        休息一会 让线程
     * 3.void join();                          强制的让某一个线程 先执行完 类似于插队的效果!
     * 4.thread.yield();                       礼让的方法,让当前线程礼让别的线程,有可能成功。和join的方法很像。
     * 5.void interrupt()                    中断线程                
     * 6.boolean isAlive()                    测试线程是否处于活动状态
     * 7.Thread.currentThread().getName()    获得该线程的名字
     * 
     五、线程同步的问题?
          解决方法 1.同步方法
                     2.同步代码块
                     
                     
     六、启动一个线程是run()还是start()?它们的区别?
            Start方法是将线程启动起来,遵循生命周期的运行流程的,
            按照该方法启动的线程才可以轮番被cpu调度,随机执行,
            但是run方法就是一个普通方法,若调用该方法,就没有将该线程进去启动,也就没有线程运行的先决条件了,
            所以该线程就不会再轮番的被cpu进行调度了
     */
    public class Demo01 implements Runnable{
    
        @Override
        public void run() {
            for (int i = 0; i <30; i++) {
                System.out.println("当前运行的线程:"+Thread.currentThread().getName()+"----"+i);
            }
            
        }
        public static void main(String[] args) {
            Demo01 demo01=new Demo01();
            Demo01 demo02=new Demo01();
            
            //创建了你定义的线程类的线程对象。
            Thread t1=new Thread(demo01);            //默认名字 Thread-0
            Thread t2=new Thread(demo02, "哈哈");   //给线程  起名字 
            
            t1.start();
            t2.start();
        }
    
    }
  • 相关阅读:
    HTML事件处理程序---内联onclick事件
    js的width函数
    了解跨站请求伪造CSRF
    离线百度地图
    GetOverlappedResult 函数
    OVERLAPPED 结构
    SetupDi系列函数
    Linux 各个命令的缩写原型
    Linux grep命令
    Linux if[......] then ......else...... fi
  • 原文地址:https://www.cnblogs.com/ZXF6/p/11122455.html
Copyright © 2011-2022 走看看