码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 认识线程,初始并发


    线程学习

    1. 什么是线程

    • 程序

      是为完成特定任务,用某种语言编写的一组指令的集合,即指一段静态的代码,静态对象

    • 进程

      是程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程:有他自身的产生,存在和消亡的过程。程序是静态的,进程是动态的;进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域。

    • 线程

      进程可进一步细化为线程,是一个程序内部的一条执行路径。若一个进程同一时间并行执多个线程,就是支持多线程的;

      线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器,线程切换的开销小;

      一个进程中,多个线程共享相同的内存单元/内存地址空间,也就是说他们从同一堆中访问相同的变量和对象,这就使得线程间通信更简便、高效。但多个线程操作共享的系统资源可能就会带来安全的隐患。

    2. 初识并发问题

    • 并发:一个CPU(采用时间片)同时执行多个任务。比如:秒杀,多个人做同一件事

    下面代码为例,让我们了解什么是并发:

    //多个线程操作一个对象
    //线程不安全,数据紊乱
    public class TestThread01 implements Runnable {
    	//票数
        private int tkicketNum=10;
        @Override
        public void run() {
            while (true){
                if(tkicketNum<1){
                    break;
                }
                System.out.println(Thread.currentThread().getName()+"拿到了第"+ tkicketNum-- +"张票");
            }
        }
        public static void main(String[] args) {
            TestThread01 testThread01 = new TestThread01();
            new Thread(testThread01,"张三").start();
            new Thread(testThread01,"李四").start();
            new Thread(testThread01,"wangwu").start();
    
        }
    }
    

    结果如下:

  • 相关阅读:
    万物皆可集成系列:低代码对接企企云实现数据集成
    【DC-DC升压电推剪方案】FP6277,FP6296电源升压芯片在电推剪中扮演着一个怎样的角色?带你深入了解电推剪的功能和应用及工作原理
    多级菜单搜索,保存字符串搜索
    linux查看外网ip的5种方法
    nodejs微信小程序+python+PHP-维斯公司财务管理系统的设计与实现-计算机毕业设计推荐
    leetCode 746. 使用最小花费爬楼梯
    向日葵远程控制遭勒索病毒攻击系谣言 贝锐官方已发公告辟谣
    【Apache Spark 】第 9 章使用 Apache Spark构建可靠的数据湖
    Day08-尚品汇-放大镜操作上
    Springboot启动流程分析(三):刷新IOC容器之执行beanFactory后置处理器原理
  • 原文地址:https://www.cnblogs.com/kulapikajy/p/16728360.html
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号