线程—并发编程(基础+1)


文章目录

  • 线程—并发编程(基础+1)
  • 一、线程相关属性
    • 1、线程和调用栈
    • 2、线程的常见属性
    • 3、前台线程&&后台线程(精灵线程/守护线程)
  • 二、线程之间的相互控制
    • 1、Thread.join()方法
    • 2、Thread.sleep()方法
    • 3、Thread.currentThread()方法
  • 总结

一、线程相关属性

1、线程和调用栈

线程和调用栈的关系:每个线程都有自己独立的调用栈

public class addMain {//暂且把主方法中的线程称为主线程//一个Java应用总是从main ()方法开始运行,mian ()方法运行在一个线程内,它被称为主线程。public static void main(String[] args) {//创建一个线程对象(这个线程对象执行的是add方法)addThread addT=new addThread();addT.start();//在主线程中也去调用add方法Add.add(10,20);}
}
//线程
class addThread extends Thread{@Overridepublic void run() {//这个线程要干的事就是调用Add方法System.out.println(Add.add(1, 2));}
}
//add方法
class Add{public static int add(int a, int b){return a+b;}
}

在main方法中,创建并启动了一个addT线程,同时自己也调用add方法。所以现在共有两个线程:

1、主线程(包含main方法和add方法)
2、addThread线程(包含run方法和add方法)
虽然这两个线程都调用了add方法,但只能说明这两个线程执行的是同一批指令(程序=指令+数据),他们各自有各自的调用栈,意味着他们用同一批指令处理不同的数据。

来看看主线程栈帧的调用情况

线程—并发编程(2)相关推荐

  1. 线程并发编程之线程锁

    实现并发的方式有多种,其中有进程.线程.基于异步事件机制的编程等等.而针对多线程编程应为同一进程下的多个线程之间是共享进程的用户地址空间和 pc 等资源.所以会存在着数据竞争的情况,故而就会涉及到线程 ...

  2. 海量数据处理:从并发编程到分布式系统

    来自:DBAplus社群 作者介绍 Mark,一个正在成长的小码农. 本系列文章主要围绕高并发这一话题展开,分享笔者在并发处理上的学习思路以及踩过的坑.具体思路大体分为三部分: Java多线程编程: ...

  3. 学习笔记(08):Python网络编程并发编程-实现服务端可以对多个客户端提供服务

    立即学习:https://edu.csdn.net/course/play/24458/296237?utm_source=blogtoedu 链接循环,一个服务器服务多个客户端, 思路1:服务器一个 ...

  4. java线程钥匙_Java多线程并发编程/锁的理解

    一.前言 最近项目遇到多线程并发的情景(并发抢单&恢复库存并行),代码在正常情况下运行没有什么问题,在高并发压测下会出现:库存超发/总库存与sku库存对不上等各种问题. 在运用了 限流/加锁等 ...

  5. java虚拟机线程调优与底层原理分析_Java并发编程——多线程的底层原理

    " Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和 CPU的 ...

  6. Java并发编程:线程封闭和ThreadLocal详解

    什么是线程封闭 当访问共享变量时,往往需要加锁来保证数据同步.一种避免使用同步的方式就是不共享数据.如果仅在单线程中访问数据,就不需要同步了.这种技术称为线程封闭.在Java语言中,提供了一些类库和机 ...

  7. Java并发编程 synchronized保证线程安全的原理

    文章转载致博客 blog.csdn.net/javazejian/- 自己稍加完善. 线程安全是并发编程中的重要关注点,应该注意到的是,造成线程安全问题的主要诱因有两点,一是存在共享数据(也称临界资源 ...

  8. 判断线程是否执行完毕_Java并发编程 | 线程核心机制,基础概念扩展

    源码地址:GitHub || GitEE 一.线程基本机制 1.概念描述 并发编程的特点是:可以将程序划分为多个分离且独立运行的任务,通过线程来驱动这些独立的任务执行,从而提升整体的效率.下面提供一个 ...

  9. Java并发编程原理与实战六:主线程等待子线程解决方案

    Java并发编程原理与实战六:主线程等待子线程解决方案 参考文章: (1)Java并发编程原理与实战六:主线程等待子线程解决方案 (2)https://www.cnblogs.com/pony1223 ...

最新文章

  1. windows下mysql开启慢查询
  2. CSS复合选择器(后代选择器、子元素选择器、并集选择器、伪类选择器、:focus伪类选择器)
  3. line-height 行高
  4. Hadoop应用实战100讲(一)-Hadoop进行文件压缩
  5. 路径问题(如何正确写出文件路径)
  6. Spring Boot 单元测试详解+实战教程
  7. Java中使用Map and Fold进行功能性编程
  8. python中isinstance(3、object)_python中isinstance函数判断各种类型的小细节
  9. Nginx + php-fpm + PHP 5.4 + MySQL 5.5 + Zend
  10. helloworld代码_十年架构师教你用最简单的代码实现Java基础编程—Hello World!
  11. 基于 ClickHouse OLAP 的生态:构建基于 ClickHouse 计算存储为核心的“批流一体”数仓体系...
  12. oracle 取现在的时间,Oracle 获取当前日期及日期格式
  13. xxm php,XXM个人知识管理工具 v6.0.5
  14. 手机控件查看工具uiautomatorviewer中一些方法
  15. Python 画图工具生成数据点图
  16. 华为云服务器双十一报价表出炉最新内容
  17. mac下怎么将终端命令安装的软件加进系统环境变量中
  18. android 验证邮箱格式,android开发中, 如何验证邮箱的格式 ?
  19. SuMa++: Efficient LiDAR-based Semantic SLAM
  20. 公司章程绝对记载事项有哪些

热门文章

  1. UE4 使用manifest文件
  2. 华丽成长为IT高富帅、IT白富美(12)
  3. 27 个提升开发幸福度的 VsCode 插件
  4. SQL2008数据类型分类及含义
  5. Core Temp实时监控CPU温度/内存使用率/CPU主频
  6. 报错 DOTWEEN ► Max Tweens reached: capacity has automatically been increased from 200/50 to 500/50.
  7. 深度拷贝Excel文件中sheet工作簿
  8. impala 3.2.0
  9. Smarty教程,语法与应用
  10. 【方法指南】将以逗号为分隔值的文件转换为excel格式文件