zoukankan      html  css  js  c++  java
  • 多线程相关

    多线程相关:
    1.线程跟进程的区别?
    线程是进程的执行单元。
    线程是进程的组成部分,一个进程可以拥有多个线程,一个线程必须有一个父进程。
    详解:http://blog.csdn.net/mxsgoden/article/details/8821936

    2.并发和并行
    并行是指同一时刻,有多条指令在多个处理器上同时执行
    并发是指同一时刻只能由一条指令执行,但过个进程指令被轮换执行,宏观上具有多个进程同时执行的效果

    3.线程的创建和启动
    --创建分两种方式:继承Thread类和实现Runnable接口
    //继承Thread类来实现多线程
    public class TestThread extends Thread{
    private int i;
    public void run(){
    for(int i = 0;i < 100; i ++){
    System.out.println(getName()+" " + i);
    }
    }
    public static void main(String[] args){
    for(int i = 0;i < 100; i ++){
    System.out.println(Thread.currentThread.getName()+" " + i);
    if(i == 20){
    new TestThread().start();
    new TestThread().start();
    }
    }
    }
    }
    //实现Runnable接口来实现多线程
    public class TestRunnable implements Runnable{
    private int i;
    public void run(){
    for(int i = 0; i < 100; i ++){
    System.out.println(Thread.currentThread().getName()+" " + i);
    }
    }
    public static void main(String[] args){
    for(int i = 0;i < 100;i ++){
    System.out.println(Thread.currentThread().getName()+" " + i);
    if(i == 20){
    TestRunnable rt = new TestRunnable();
    new Thread(rt,"new Thread1").start();
    new Thread(rt,"new Thread2").start();

    }
    }
    }
    }

    启动线程使用start() 而不是run()

    4.线程的生命周期:
    new(新建) -> Runnable(就绪) -> Running(运行) ->Blocket(阻塞) -> Dead(死亡)

    5.join()方法--一个线程等待另一个线程执行完毕,再继续执行。eg:A线程调用了B线程的join()方法,A就需要等待B线程执行完毕以后才能继续执行。

    6.后台线程--Daemon:所有线程都死亡,后台线程也会自动死亡
    setDaemon() 设置一个线程为后台线程,必须在start()之前调用
    isDaemon()

    7.线程睡眠--sleep()

    8.线程让步 yield() 让给同一优先级或比当前优先级高的线程,可以用设置优先级来做比较

    9.线程同步
    synchronized
    同步锁 lock

    拼了命、尽了兴
  • 相关阅读:
    加解密的使用工具总结
    Java Base64编码解码实现
    Java 获取各时区时间,获取当前时间到格林威治时间1970年01月01日00时00分00秒的秒数
    关于时区的时间的详解,比如UTCGMT等
    JAVA帮助文档全系列 JDK1.5 JDK1.6 JDK1.7 官方中英完整版下载
    HTTP请求报文和HTTP响应报文
    一名全栈工程师Node.js之路-转
    使用zlib模块实现HTTP服务端与客户端实现传输数据压缩
    为什么要搭建自己的缓存管理模块?
    js 跨域问题常见的五种解决方式
  • 原文地址:https://www.cnblogs.com/zj-phper/p/7645942.html
Copyright © 2011-2022 走看看