栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

多线程概述

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

多线程概述

  1. 什么是线程? 什么是进程?
    进程是应用程序(1个进程是一个软件)
    线程是进程中的执行场景/执行单元
    一个进程可以启动多个线程
    进程和进程之间的内存地址独立不共享
    在java语言中 :线程和线程之间的堆内存和方法区内存共享,但是栈内存独立,一个线程一个栈
    假设启动10个线程,会有10个栈空间,每个栈和每个栈之间,互不干扰,各自执行各自的,互相不干扰,这就是多线程并发。
    main方法结束不代表程序结束,只代表主线程结束。其他线程可能还在执行
  2. 分析对于单核的cpu,真的可以做到多线程并发吗?(单核的cpu表示只有一个大脑)
    不能真正的做到多线程并发,但是给人一种做到了多线程并发的感觉。
    对于单核的cpu在某一个时间点上只能处理一件事情,但是由于cpu的处理过程较快,多个线程之间频繁切换执行,给人的感觉是多核执行。多个事情同时在做
    什么是真正的多线程并发?
    t1线程执行t1的。
    t2线程执行t2的。
    t1不会影响t2,t2也不会影响t1
  3. java语言中,实现线程有两种方式
    java支持多线程机制,并且java已经将多线程实现了,我们只需要继承就行了
    第一种方式:编写一个类,直接继承Java.lang.Thread,重写run方法。


    第二种方式:编写一个类,实现Java.lang.Runnable接口,实现run方法
  4. 线程的生命周期
  5. 线程中的方法

    Thread.sleep方法是一个静态方法 是当前线程会睡眠
    面试题

  6. 常见的调度模型
  7. java中关于调度的方法


    优先级较高的,抢到优先级的时间较多一些
  8. 关于线程安全的问题
    (1)以后在开发中,我们的项目都是运行在服务器中,而服务器已经将线程的定义,线程对象的创建,线程的启动等,都已经实现完了,这些代码我们都不需要编写
    最重要的是,我们要编写的程序需要放在一个多线程的环境下进行的,需要关注的是这些数据在多线程的并发的环境下是否是安全的。
    (2)什么时候在多线程的环境下会出现问题?
    三个条件:
    条件1:多线程并发
    条件2:数据共享
    条件3:共享数据有修改的行为
    怎么解决线程安全问题?
    线程排队执行。(不能并发),用排队执行解决线程安全问题,这种机制被称为:线程同步机制(缺点:牺牲一些效率,但是数据的安全第一)
    (3)线程同步,有两个专业术语(异步就是并发,同步就是排队)
    异步编程模型:线程1和线程2,各自执行各自的,1不管2,2不管1,谁也不需要等谁,这种编程模型叫做:异步编程模型。其实就是多线程并发,效率较高
    同步编程模型:在有线程执行的时候,另外的线程必须等待,线程之间发生了等待关系,这就是同步编程模型,效率较低,线程排队执行
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/314741.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号