jar包打包有很多中其中有用命令 jar cvf 指定java文件 名称 和Linux tar打包是一样的
jar包打包成功后,点击MANIFEST文件 加入参数 Main-Class: 指定初始启动类
THread是个生成线程的类,他包含有对象name;实现THread,必须包含run方法
有俩个方式实现线程:
方式一 :
1. 自定义一个类继承Thread类。
2. 重写Thread类的run方法,把自定义线程的任务代码写在run方法上。
3. 创建Thread的子类对象,并且调用start方法启动一个线程。
注意:千万不要直接调用run方法,调用start方法的时候线程就会开启,线程一旦开启就会执行run方法中代码,如果直接调用
run方法,那么就 相当于调用了一个普通的方法而已。
方式二:
1. 自定义一个类实现Runnable接口。
2. 实现Runnable接口 的run方法,把自定义线程的任务定义在run方法上。
3. 创建Runnable实现类对象。
4. 创建Thread类 的对象,并且把Runnable实现类的对象作为实参传递。
5. 调用Thread对象 的start方法开启一个线程。。
synchronized(锁对象){
需要同步的代码
}
同一个时间内,只能有一个线程访问被锁住的代码部分,synchronized可以修饰一个函数
wait():一个线程如果执行了wait方法,那么该线程就会进去一个以锁对象为标识符的线程池中等待
notify():如果一个线程执行notify方法,那么就会唤醒以锁对象为标识符的线程中等待线程其中一个
join():加入一个新的线程; 一个线程如果执行join语句,那么就有新的线程加入,执行该语句的线程必须要让步给新加入的线程先完成任务,然后才能继续执行