• 多线程(一)


    进程和线程

    • 进程作为资源分配的基本单位

    • 线程作为资源调度的基本单位,是程序的执行单元,执行路径(单线程:一条执行路径,多线程:多条执行路径)。是程序使用CPU的最基本单位

    线程有3个基本状态

    • 执行、就绪、阻塞

    线程有5种基本操作

    • 派生、阻塞、激活、 调度、 结束

    并行和并发

    并行:

    • 并行性是指同一时刻内发生两个或多个事件。

    • 并行是在不同实体上的多个事件

    并发:

    • 并发性是指同一时间间隔内发生两个或多个事件。

    • 并发是在同一实体上的多个事件

    由此可见:并行是针对进程的,并发是针对线程的

    创建多线程

    • 继承Thread,重写run方法

    • 实现Runnable接口,重写run方法

    run()和start()方法区别:

    • run():仅仅是封装被线程执行的代码,直接调用是普通方法

    • start():首先启动了线程,然后再由jvm去调用该线程的run()方法。

    jvm虚拟机的启动是单线程的还是多线程的?

    • 是多线程的。不仅仅是启动main线程,还至少会启动垃圾回收线程的。

    既然有两种方式实现多线程,我们使用哪一种???

    一般我们使用实现Runnable接口

    • 可以避免java中的单继承的限制

    • 应该将并发运行任务和运行机制解耦,因此我们选择实现Runnable接口这种方式

    守护线程

    守护线程是为其他线程服务的

    • 垃圾回收线程就是守护线程~

    守护线程有一个特点

    • 当别的用户线程执行完了,虚拟机就会退出,守护线程也就会被停止掉了。

    • 也就是说:守护线程作为一个服务线程,没有服务对象就没有必要继续运行

    使用线程的时候要注意的地方

    1. 在线程启动前设置为守护线程,方法是setDaemon(boolean on)

    2. 使用守护线程不要访问共享资源(数据库、文件等),因为它可能会在任何时候就挂掉了。

    3. 守护线程中产生的新线程也是守护线程

    4. 守护线程可以自己退出,非守护线程只能手动退出,所以垃圾回收是守护线程,因为需要回收完之后自己退出,然后退出JVM

  • 相关阅读:
    临时禁用大型列表上的列表视图阈值
    临时禁用大型列表上的列表视图阈值
    SharePoint Foundation 2010 托管客户端对象模型概述 创建 Windows 控制台托管的客户端对象模型应用程序
    如何隐藏MOSS2010的网站操作菜单
    MOSS2010的列表视图参数设置以及列表记录样式设置
    使用SharePoint Server 2010搜索PDF文档
    Sharepoint2010如何使用Linq to Sharepoint
    水晶報表字段超鏈結4/28
    4月21自考4/23
    [轉]統籌方法華羅庚
  • 原文地址:https://www.cnblogs.com/yjh1995/p/13514619.html
Copyright © 2020-2023  润新知