## 概述
因为在一个线程中,所以只能按顺序执行.
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字符串