简述网站一般建设的流程图,wordpress 那个版本好,买了个网站后怎么做,wordpress 资源站主题一.关于线程的常用操作
1.启动线程
run(): 对于run方法的覆写只是指定线程要做的任务清单#xff0c;而不是真正的启动线程
start()#xff1a; start()方法才是真正的在底层创建出一个线程#xff0c;并且启动 2.中断线程
1.通过共享的标记来中断
package demo;
impor…一.关于线程的常用操作
1.启动线程
run(): 对于run方法的覆写只是指定线程要做的任务清单而不是真正的启动线程
start() start()方法才是真正的在底层创建出一个线程并且启动 2.中断线程
1.通过共享的标记来中断
package demo;
import static java.lang.Thread.sleep;
public class MyThread06 {private static class MyRunnable implements Runnable{public static volatile boolean isQuitfalse; //设立标志位Overridepublic void run() {while(!isQuit){System.out.println(Thread.currentThread().getName()正在工作);try{sleep(1000); //打印一次休眠1秒} catch (InterruptedException e) {e.printStackTrace();}}System.out.println(Thread.currentThread().getName() 不工作了);}}public static void main(String[] args) throws InterruptedException {Thread tnew Thread(new MyRunnable(),线程1);t.start();//main主线程创建了另一个线程System.out.println(Thread.currentThread().getName()开始工作);Thread.sleep(5*1000);//休眠5秒MyRunnable.isQuittrue;//让标志位改变让另一个线程停止工作}
}2.调用intertrupt()方法通知 package demo;
import static java.lang.Thread.sleep;
public class MyThread07 {private static class MyRunnable implements Runnable{Overridepublic void run() {while(!Thread.interrupted()){System.out.println(Thread.currentThread().getName()正在工作);try {sleep(1000);} catch (InterruptedException e) {e.printStackTrace();break;//收到打断信号就跳出循环不工作(收到中断信号不跳出循环也可以继续工作)}}System.out.println(Thread.currentThread().getName()不工作了);}}public static void main(String[] args) throws InterruptedException {Thread tnew Thread(new MyRunnable(),线程1);t.start();System.out.println(Thread.currentThread().getName()开始工作);Thread.sleep(5*1000);t.interrupt();}
}3.等待一个线程结束join()
4.获取当前线程currentThread()
5.休眠当前线程sleep()
6.观察一个线程的状态 State() 线程的六大状态
NEW(new): 新建状态线程还在刚被new出来的状态
RUNNABLE(runnable):可运行状态可运行状态时线程可能正在运行或者处于可被调度的状态
WAITING(waiting): 等待状态无限期等待
TIMEWAITING(time-waiting):超时等待状态有指定的时间的等待
BOLCKED(blocked):阻塞状态线处于阻塞状态
TERMINATED(terminated)终止状态线程正常结束运行或者异常结束运行状态 7.yield() 线程直接让出CPU 二.关于线程安全
1.线程安全
如果一份多线程的代码是可以运行出我们所预期的结果的我们就称它在多线程的情况下是符合预期的是线程安全的。如果结果是不符合预期的就是线程不安全的。 出现线程安全的原因
1.多个线程同时修改共享的数据导致最终的结果不符合预期
2.没有保证原子性原子性就是一份代码运行的最小单位如果这个最小单位还没运行结束其他线程的代码就开始介入那么就说没有保证原子性一个线程正在对共享变量操作还没操作完毕其他线程就介入结果就会不符合预期线程就不安全。
3.没有保证可见性没有保证可见性就是一个线程对于一个变量的修改没有及时被其他线程看到。