跑起来的程序是进程
进程是资源分配的单位
进程号比皇家的宫殿
线程是多任务执行的单位
所有的任务都是线程执行的
进程提供资源
线程提供劳动力
线程与线程是竞争关系
线程与线程会互相竞争cpu的使用权限
同一进程中的线程是可以共享全局变量的
cpu会轮循访问各个进程
被cpu访问的进程就可以正常运行
当进程的任务时间超出cpu等待时间时,cpu会暂时离开
当进度的任务时间低于cpu等待时间时,cpu会提前离开
进程与进程间各自独占的空间
进程间的数据不可互相访问
创造一个普通类
让这个普通类继承Thread类
重写run方法
在run方法中编写这个线程要做的事情
在测试类中实例化线程对象
线程对象.start()
线程对象.setNme(名称)
线程对象.getName()
自定义线程定义带参构造方法,接收一个字符串作为线程名称
把收到的字符串数据传递给父类构造方法
构造自定义线程的时候通过new自定义线程类名(线程名)
定义普通类 实现Runnable接口
重写run方法,编写要做的事情
在测试类中实例化普通类,得到规则对象
在测试类中实例化线程对象 把规则对象作为参数传递
在测试类中让线程对象启动,调用start方法
Thread t =Thread.currentThread();
Thread t=Thread.currentThread();
Thread.sleep(5000);
Thread.yield()
yield()
线程对象.join()
线程对象的任务不执行完成,主线程就会卡在这里
线程对象.setPriority(优先级值)
优先级取值1-10
优先级默认值是5
线程对象.setDaemon(true);
守护线程的功能是当主线程结束时,守护线程也结束
synchronized(锁){敏感操作}
每敏感操作就是容易出现数据错误的地方
锁需要是引用类型的对象
敏感操作—般是容易出错的地方