网页设计与网站组建设计一套企业网站多少钱
2026/4/16 10:43:50 网站建设 项目流程
网页设计与网站组建,设计一套企业网站多少钱,html网站地图怎么做,网站建设平台合同模板下载线程运行原理 每个线程都有自己的栈空间#xff0c;且互不干扰 只有当所有线程都运行结束#xff0c;Java进程才会结束 线程的上下文切换 概念#xff1a; 当cpu不在执行当前线程的指令#xff0c;而是去执行另一个线程的指令 出现的原因 1.CPU的时间片用光 2.有更高优先级…线程运行原理每个线程都有自己的栈空间且互不干扰只有当所有线程都运行结束Java进程才会结束线程的上下文切换概念当cpu不在执行当前线程的指令而是去执行另一个线程的指令出现的原因1.CPU的时间片用光2.有更高优先级的线程需要执行3.垃圾回收4.线程自己调用wait,locksleep等主动常见方法sleep当前线程由Runnable状态转化为TIME_WAITING其他线程可以通过休眠线程的interrupt方法将其打断打断后会抛出异常,又转化为RUNNABE状态yield当前运行中的线程将时间片让给其他线程其状态转化为runnable,但是如果没有其他处于runnable的线程依旧不会将按时间片让出去优先级数字越大优先级越高抢到时间片的概率越大join()线程等待调用这个方法的线程结束后才继续往下执行Threadt1newThread(t1);t1.start();t1.join()//主线程运行到这里的时候会等待t1线程运行结束后才继续执行join(long t)线程等待方法线程执行完且最多等t毫秒interrupt ()对处于阻塞状态的线程会让他们抛出异常同时将打断标记重置为false 对于运行中的线程只是会将中断标记设置为true,依旧不会影响其正常运行除非他调用isInterrupt方法对他自定义做处理isInterrupt()判断这个线程是否被打断打断则返回trueinterrupted()判断线程是否被打断打断则返回true且重置为falsepark()线程运行到这里会停止知道其他线程将其打断守护线程当非守护线程执行完成即使守护线程还有代码没有执行完也会强制结束t.setDaemon(true)线程状态注意只有处于Runnable状态的线程才有资格抢时间片1.NEW(新建状态创建线程后但是没有start()线程)2.Runnable(可运行状态调用start后nofity后)3.BLOCKED(阻塞状态到线程获取锁失败)4.WAITING(等待状态当调用wait()后)5.TIME_WAITING(时间等待状态当调用sleep())6.TERMINATED(终止或销毁状态当执行完任务后)Synchronized注意Class对象锁和实例锁是两个不同的锁基础语法synchronized(对象){临界区}如果这个对象时静态变量每个线程都是共享同一把锁但是如果是局部变量就相当于每个线程都有自己的锁相互不影响个人理解没有拿到锁的线程转化为BLOCK状态且不会参与时间片的分配这样拿到锁的线程即使时间片用光了下一次依然还是分配给他当锁被释放后其他线程就从BLOCK状态转化为RUNABLE状态且参与时间片的分配加在方法上publicsynchronizedvoidfunc(){....}//等价于publicvoidfunc(){synchronized(this){.....}}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询