【Java多线程与高并发】1、线程的基本概念
发布日期:2021-07-01 02:43:21
浏览次数:2
分类:技术文章
本文共 1644 字,大约阅读时间需要 5 分钟。
什么叫进程?什么是线程?
- Program app -> QQ.exe
- 进程:做一个简单的解释,你的硬盘上有一个简单的程序(QQ.exe),这个程序是一个
静态
的概念,它被扔在硬盘上也没人理他,但是当你双击它,弹出一个界面输入账号密码登录进去了,OK,这个时候叫做一个进程。进程相对于程序来说它是一个动态的概念。
- 线程:作为
一个进程里面最小的执行单元它就叫一个线程
,用简单的话讲一个程序里不同的执行路径就叫做一个线程。
进程和线程的区别
一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。
而线程是在进程中执行的一个任务。Java运行环境是一个包含了不同的类和程序的单一进程。
线程可以被称为轻量级进程。 线程需要较少的资源来创建和驻留在进程中,并且可以共享进程中的资源。
代码示例
import java.util.concurrent.TimeUnit;public class T01_WhatIsThread { private static class Thread_1 extends Thread { @Override public void run() { // super.run(); for(int i=0; i<10; i++) { try { TimeUnit.MICROSECONDS.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("线程Thread_1..."); } } } public static void main(String[] args) { //new Thread_1().run(); //注意,两种方式的结果是不一样的,run()后是先执先执行完Thread_1,再打印10个main new Thread_1().start(); //要用start()启动线程 for(int i=0; i<10; i++) { try { TimeUnit.MICROSECONDS.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("线程main..."); } }}
线程main...线程Thread_1...线程main...线程Thread_1...线程main...线程Thread_1...线程main...线程Thread_1...线程main...线程Thread_1...线程main...线程main...线程Thread_1...线程main...线程Thread_1...线程main...线程Thread_1...线程main...线程Thread_1...线程Thread_1...
观察上面程序的数据结果,你会看到字符串“线程Thread_1…”和“线程Main…”的交替输出,这就是程序中有两条不同的执行路径在交叉执行,这就是直观概念上的线程,概念性的东西,理解就好,没有必要咬文嚼字的去背文字的定义。
转载地址:https://melodyjerry.blog.csdn.net/article/details/116093207 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年05月02日 04时17分31秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
volatile关键字
2019-05-01
Servlet_快速入门
2019-05-01
Servlet_生命周期方法
2019-05-01
Request_原理
2019-05-01
Request_继承体系
2019-05-01
前端权限控制:获取用户信息接口构造数据
2019-05-01
有状态服务和无状态服务
2019-05-01
七牛云存储:断点续传
2019-05-01
字节流复制文本文件【应用】
2019-05-01
字节流复制图片
2019-05-01
私钥加密私钥解密
2019-05-01
锁的释放流程-ReentrantLock.unlock
2019-05-01
Java判断字符串是否为数字(浮点类型也包括)
2019-05-01
ubuntu opencv-python 安装很慢问题
2019-05-01
MySQL5.7版本修改了my.ini配置文件后mysql服务无法启动问题
2019-05-01
【大数据开发】Java基础 -总结21-Hashmap和HashTable的区别
2019-05-01
Azkaban体系结构
2019-05-01
机器学习之重头戏-特征预处理
2019-05-01