## 概述
因為在一個線程中,所以只能按順序執行.
jvm啟動后,必然有一個執行路徑(線程)從main方法開始的,一直執行到main方法結束,這個線程在 加吧中稱之為主線程.當程序的主線程執行時,如果遇到了 循環而導致程序在指定位置停留時間過長,則無法馬上執行下面的程序,需要等待循環結束后才能夠執行.
那么,呢能否實現一個主線程負責執行其中一個循環,再由另一個縣城負責其他代碼的執行,最終實現多部分代碼同事執行的效果.
可以使用java提供的多線程技術來解決該問題.
~~~
public class Person
{
private transient String name;
private int age;
public Person(String name, int age)
{
this.name = name;
this.age = age;
}
public void music()
{
for (int i = 0; i < 20; i++) {
System.out.println(name + "在聽第" + i + "首歌");
}
}
public void eat()
{
for (int i = 0; i < 20; i++) {
System.out.println(name + "在吃第" + i + "口飯");
}
}
}
~~~
~~~
Person p = new Person("jack", 20);
p.music();
p.eat();
~~~
```
jack在聽第0首歌
jack在聽第1首歌
jack在聽第2首歌
jack在聽第3首歌
jack在聽第4首歌
jack在聽第5首歌
jack在聽第6首歌
jack在聽第7首歌
jack在聽第8首歌
jack在聽第9首歌
jack在聽第10首歌
jack在聽第11首歌
jack在聽第12首歌
jack在聽第13首歌
jack在聽第14首歌
jack在聽第15首歌
jack在聽第16首歌
jack在聽第17首歌
jack在聽第18首歌
jack在聽第19首歌
jack在吃第0口飯
jack在吃第1口飯
jack在吃第2口飯
jack在吃第3口飯
jack在吃第4口飯
jack在吃第5口飯
jack在吃第6口飯
jack在吃第7口飯
jack在吃第8口飯
jack在吃第9口飯
jack在吃第10口飯
jack在吃第11口飯
jack在吃第12口飯
jack在吃第13口飯
jack在吃第14口飯
jack在吃第15口飯
jack在吃第16口飯
jack在吃第17口飯
jack在吃第18口飯
jack在吃第19口飯
```
- 環境
- Java基礎
- 數據類型
- 基本類型
- 引用類型
- Array
- Class
- ArrayList
- 流程控制
- ASCII碼表
- 面向對象
- 概述
- 變量
- this
- 修飾符
- 封裝
- 繼承
- final
- static
- 接口
- 接口
- 抽象類
- overload
- 接口和抽象類區別
- 案例
- 多態
- 構造方法
- super
- 匿名對象
- 內部類
- 靜態導入
- 包的聲明和訪問
- 代碼塊
- 代理設計模式
- 靜態代碼塊
- Object類
- lambda表達式
- 枚舉
- 定義枚舉
- 常用方法
- 枚舉常量
- 異常
- 可變參數
- Properties
- 概述
- Properties和持久化有關的方法
- 反射
- 類加載器
- 概述
- Class類
- 獲取構造方法并運行
- 獲取成員變量并改值
- 獲取成員方法并運行
- 反射泛型擦除
- 反射通過配置文件運行
- 常用 API
- Date類
- DateFormat類
- Calendar類
- Math類
- String類
- object類
- System類
- 正則表達式
- BigInteger類
- BigDecimal類
- Arrays工具類
- StringBuffer類
- 基本類型包裝類
- 自動裝箱和自動拆箱
- 框架集合
- collection接口
- 概述
- 接口方法
- 迭代器
- 迭代器并發異常
- 增強for循環
- 泛型
- hashCode和equals
- List接口
- 概述
- ArrayList
- LinkedList
- vector
- Set接口
- 概述
- 對象的哈希值
- HashSet
- LinkedHashSet
- 保證自定義元素的唯一性(重寫)
- ArrayList和HashSet的contains原理
- Map接口
- 概述
- Map集合常用方法
- 迭代Map
- Map存儲自定義類型
- HashMap
- LinkedHashMap
- Hashtable
- 嵌套Map遍歷
- 方法的可變參數
- collections工具類
- 集合嵌套
- 集合特點總結
- Collection集合工具類
- Arrays工具類
- File類
- 概述
- 獲取方法
- 創建和刪除
- 判斷方法
- 其他方法
- 文件過濾器
- IO流
- 字節流
- 概述
- 字節流
- 字節流復制文件
- 字節緩沖流
- 復制單級文件夾
- 使用字節流讀取中文的亂碼問題
- 字符編碼表
- 方便程序員的IO流
- 轉換流
- 概述
- OutputStreamWriter類
- InputStreamWriter類
- 轉換流和其他子類的區別
- 序列化流
- 概述
- 序列化接口以及版本號問題
- transient
- 打印流
- 多線程
- 概述
- main線程介紹
- 開啟線程方式一:Thread類
- 開啟線程方式二:Runnable類
- 線程的執行原理
- 使用哪種方式好
- 使用匿名內部類創建線程
- 線程安全
- ThreadLocal
- 網絡編程
- XML
- 概述
- 語法
- 元素標簽
- 屬性
- 轉義字符
- CDATA區
- XML約束
- DTD約束
- 三種引入DTD的方式
- DTD語法
- Schema約束
- JDBC
- 概述
- JDBC原理
- JDBC查詢操作
- JDBCUtils
- 預處理對象
- JDBC連接池
- 概述
- DBCP
- C3P0
- DBUtils操作
- ArrayHandler
- ArrayListHandler
- BeanHandler
- BeanListHandler
- ColumnListHandler
- MapHandler
- MapListHandler
- ScalarHandler
- 事務
- 事務概述
- 原生JDBC完成轉賬
- DBUtils完成轉賬
- 事務特性
- 三層思想
- 概述
- JavaWEB
- tomcat
- servlet
- 概述
- 映射servlet
- Servlet接口
- HttpServlet類
- load-on-startup
- servletContext
- ServletRequest
- ServletResponse
- Cooike&Session
- servlet三大域對象
- JSP
- 概述
- jsp內置對象
- 指令
- page
- include
- taglib
- JSP中的四個域對象
- jsp的一個動作標簽
- EL表達式
- 概述
- 獲取域中數據
- 執行運算
- el表達式中的內置對象
- jsti標簽
- 概念
- jstl分類
- Filter過濾器
- 概述
- 生命周期
- url-pattern配置
- filter的chain過濾鏈
- filter-mapping子標簽
- 全局統一錯誤頁面
- filterConfig
- 自動登錄實例
- 全局統一編碼
- Listener監聽器
- 概念
- 監聽器分類
- 監聽三個對象的創建和銷毀
- 監聽三個對象屬性的變化
- 監聽javabean在session中的狀態變化
- 定時器
- 概念
- calendar日歷
- 郵件
- 概述
- JSON
- 數據結構
- 堆棧結構
- 隊列結構
- 數組結構
- 鏈表結構
- 基礎加強
- 面試題:增強一個對象的方法有幾種方式?
- 裝飾者增強
- 動態代理
- 動態代理
- 動態代理細節
- 使用動態代理解決字符集編碼
- 注解
- 概述
- 擴展的自定義注解
- 類加載器
- 全盤負責托管機制
- 開發模式
- 問題
- lambda
- 函數式編程思想概述
- String字符串