网站备案期间打不开,WordPress搭建会员系统,一站式服务就像一个什么,阿里云 邮件 wordpress2019独角兽企业重金招聘Python工程师标准 线程中有几个方法需要我们区分 1 sleep方法是表示线程执行到这的时候只是暂时处于“睡眠”状态#xff0c;在这种状态下线程是不会释放CPU资源的#xff0c;当到达休眠时间后#xff0c;线程继续“起来”干活。当线程… 2019独角兽企业重金招聘Python工程师标准 线程中有几个方法需要我们区分 1 sleep方法是表示线程执行到这的时候只是暂时处于“睡眠”状态在这种状态下线程是不会释放CPU资源的当到达休眠时间后线程继续“起来”干活。当线程处于sleep状态时别的线程不可以访问被锁定的对象。 2 yield方法指的是该线程暂时释放出CPU资源把CPU资源让给其他线程它重回就绪状态等待CPU分配给相应的CPU时间片给它然后再执行。 3 wait方法指线程进入等待状态此时别的线程可以访问被锁定的对象当线程处于wait状态时只有调用notify方法才能将线程“唤醒”让该线程重新进入就绪状态。 线程的同步一般有两种一种是同步代码块同步代码块后面有个括号里面可以选择是同步对象还是同步类字节码。当你同步的方法中有static修饰的时候那么锁的是字节码。同步普通方法的话是当前对象同步静态方法的话是同步的类字节码。静态变量是这个类初始化的时候静态变量已经帮你初始化好并且放到静态区了你实例化出来的对象的静态变量都指向静态区中的那个静态变量的地址值。 所以当我们使用线程同步时要明确锁的资源到底是锁字节码还是锁对象。如果同时锁一个资源那就是互斥了。 线程只能start一次再次启动时会报异常 IllegalThreadStateException。 JVM就是多线程的主方法是个线程垃圾回收也是个线程。 启动多线程的话有有三种方法 1 设计一个Thread子类并重写其run方法实例化这个子类并且使用这个类的start方法。 2 设计一个测试类实现runable接口并在这个类中重写run方法实例化一个线程把测试类当作构造参数来构造一个新的Thread类。 3 使用匿名类继承Thread重写run方法直接在run方法中写业务代码。匿名类的一个好处是可以很方便的访问外部的局部变量。前提是外部的局部变量需要被声明为final。(JDK7以后就不需要了) 转载于:https://my.oschina.net/u/3544267/blog/1383048