**什么是進程?**
當一個程序開始運行時,它就是一個進程,進程包括運行中的程序和程序所使用到的內存和系統資源。
而一個進程又是由多個線程所組成的。
**什么是線程?**
線程是程序中的一個執行流,每個線程都有自己的專有寄存器(棧指針、程序計數器等),但代碼區是共享的,
即不同的線程可以執行同樣的函數。
**什么是多線程?**
多線程是指程序中包含多個執行流,即在一個程序中可以同時運行多個不同的線程來執行不同的任務,
也就是說允許單個程序創建多個并行執行的線程來完成各自的任務。
多線程的好處:
可以提高CPU的利用率。在多線程程序中,一個線程必須等待的時候,CPU可以運行其它的線程而不是等待,
這樣就大大提高了程序的效率。
多線程的不利方面:
線程也是程序,所以線程需要占用內存,線程越多占用內存也越多;?
多線程需要協調和管理,所以需要CPU時間跟蹤線程;?
線程之間對共享資源的訪問會相互影響,必須解決競用共享資源的問題;
線程太多會導致控制太復雜,最終可能造成很多Bug;
- 分布式架構設計概要
- 技術管理
- 1.流程規范
- 2.精準效率
- 3.同步工具
- 代碼審核
- 編程思想
- 控制反轉和依賴注入
- public、private、protected
- MySQL
- MySQL安裝
- MySQL常用
- MySQL主從配置
- 讀寫分離
- 分庫分表
- 高可用
- MySQL集群
- MySQL優化
- MySQL慢查詢優化
- 數據結構
- MySQL備份
- MySQL導出導入
- MSSQL
- 導出導入
- Redis
- Redis日常操作
- Redis安裝
- Redis主從配置
- Redis哨兵
- 隊列
- 分布式式鎖
- Redis集群
- redis的緩存雪崩與緩存穿透
- Linux
- Linux基本操作
- Linux基礎操作1
- Linux安裝
- Linux安裝Nginx
- Linux安裝MySQL
- Linux安裝PHP
- Linux安裝Redis
- Linux安裝Swoole
- Linux安裝Elasticsearch
- Linux安裝Mycat
- Linux優化
- 集群
- 服務器管理
- Nginx
- Nginx 首頁外鏈接出現404問題
- Nginx常用命令行
- LNMP一鍵安裝的404錯誤
- http和https站點設置
- Linux shell expect spawn
- Ubuntu環境
- 寶塔
- 定時任務
- Windows
- 生成OpenSSL證書
- Git
- Git基本操作
- Git練習
- Git上傳到遠程倉庫,遠程倉庫更新到指定文件夾
- Git案例1
- Git案例2
- Git部署
- 遠程連接
- 服務器原理
- 進程和線程
- 騰訊云
- 寶塔命令行
- 消息隊列系統
- RabbitMQ
- RabbitMQ+Laravel
- Kafka
- Elasticsearch
- Laravel+Elasticsearch
- Elasticsearch Demo:ES搜索題目和內容
- 分布式
- PHP
- Laravel高級集成開發
- PHP技術棧
- LNMP
- LNMP+Laravel出現問題
- PHP+MySQL
- PHP連接MySQL
- PHP+Redis
- PHP連接Redis
- PHP+Redis簡單操作
- Laravel+Redis
- Laravel+Swoole
- Swoole
- Swoole TCP案例
- Swoole HTTP案例
- Sswoole WebSocket案例
- Swoole發短信案例
- ThinkPHP
- Java技術棧
- 文檔參考
- docker
- docker一般使用
- docker項目1
- docker+lnmp
- docker搭建wordpress
- Docker部署單體到微服務架構(Laravel)
- Docker部署單體到微服務架構(Spring Boot)
- docker部署vue項目
- Dockerfile
- 其他
- 筆記1
- 筆記2
- 開發速度
- 代碼質量
- 踩過的坑
- 編輯器
- VSCode