当前位置: 首页 > news >正文

找人做网站需要花多少钱百度seo优化系统

找人做网站需要花多少钱,百度seo优化系统,做网站怎么调用栏目,管理网站英文1. 背景 在项目开发中, 通常会有异步执行操作, 例如: 提交一个异步清空一系列数据库中ID ${_id} 的记录, 这个时候通常的做法是主线程将任务添加到一个异步队列中, 后台维护一个线程不断地循环扫描这个队列, 如果有需要执行的任务, 则执行相应的逻辑. 如下图所示: 2. 一个简…1. 背景 在项目开发中, 通常会有异步执行操作, 例如: 提交一个异步清空一系列数据库中ID ${_id} 的记录, 这个时候通常的做法是主线程将任务添加到一个异步队列中, 后台维护一个线程不断地循环扫描这个队列, 如果有需要执行的任务, 则执行相应的逻辑. 如下图所示: 2. 一个简单的异步执行方法 代码实现如下所示: public class AsyncExecutor {private static final DequeAsyncTaskEntity taskQueue new ConcurrentLinkedDeque();public AsyncExecutor() {Thread thread new Thread(() - {while (true) {try {if (taskQueue.isEmpty()) {// 休眠50毫秒ThreadUtil.sleep(50);continue;}AsyncTaskEntity entity taskQueue.pollFirst();execute(entity);} catch (Exception e) {LOGGER.error(异步执行任务出现异常!, e);}}});thread.setName(异步任务执行器);thread.start();System.out.println(analysis异步队列任务启动完成);}public static T void asyncExecute(AsyncTaskEntityT entity) {taskQueue.push(entity);} }/*** 队列中任务对象封装*/ Data public class AsyncTaskEntity T{// 消费的参数private T param;public AsyncTaskEntity(T param){this.param param;} }有了上面的异步执行器之后, 这里我们写一个main方法, 在main方法中通过异步的方式执行一些任务: public class Main{public static AsyncExecutor asyncExecutor new AsyncExecutor();public static void main(String[] args) throws Exception;{for(int i 0;i10;i){asyncExecutor.asyncExecute(new AsyncTaskEntityInteger(i));}Thread.sleep(10_000);} }到此为止一个简单清晰的异步调用逻辑就已经写完了. 但是现在不得不考虑一个事情, 异步线程中while(true)会一直空转, 即使没有任务。因此下面我们使用wait - notify进行优化 3. 优化版本1 - 使用wait - notify wait - notify是Object对象中为我们提供的两个native方法, 这两个方法只能在synchronized关键字修饰的同步代码块中使用。Thread.sleep()方法不会释放锁wait()方法会释放锁直到被其他线程notify之后才会重新获得锁。我们对上述异步队列进行改造 public class AsyncExecutor {private static final DequeAsyncTaskEntity taskQueue new LinkedBlockingDeque();public AsyncExecutor() {Thread thread new Thread(() - {while (true) {synchronized(this){try {if (taskQueue.isEmpty()) {this.wait();}AsyncTaskEntity entity taskQueue.pollFirst();execute(entity);} catch (Exception e) {LOGGER.error(异步执行任务出现异常!, e);}}}});thread.setName(异步任务执行器);thread.start();System.out.println(analysis异步队列任务启动完成);}public synchronized T void asyncExecute(AsyncTaskEntityT entity) {taskQueue.push(entity);this.notify();} }经过上面改造之后当后台队列中任务为空时轮训扫描线程就会进入到this.wait()逻辑此时会释放synchronized获取到的this锁。因此调用asyncExecute()方法会正常的获取到this锁。当push数据之后执行了notify便会唤醒一个当前this上正在wait()的线程。这种方式就避免了占用资源始终空转的问题。 其实结合线程的三种核心状态可以更好的理解当调用wait()方法时该线程会放弃CPU执行权进入到阻塞状态直到被其他线程唤醒(notify())。
http://www.hkea.cn/news/14439590/

相关文章:

  • 做网站SEO用什么电脑方便建网站流程 知乎
  • 商标注册号是什么如何做网站公司名seo
  • 免费网站开发软件网站建设公司华网天下买赠两年
  • wordpress淘宝客网站模板手机网站qq咨询代码
  • 0基础网站建设模板该网站暂时无法访问404
  • 那些网站被k恢复是怎么做的wordpress用户名忘了
  • 渭南网站建设哪里便宜正规网站制作全包
  • 网站建设自助搭配系统网站建设规划书费用预算
  • 聊城集团网站建设ftp替换网站图片
  • 创建网站需要哪些步骤需要做网站的公司有哪些
  • 物流网站建设可行性分析陕西一建2022停考
  • 网站设计目标怎么写怎么做英文的网站
  • 京东网站设计特点h5网站程序
  • 七星彩网站开发wordpress 注册 登录
  • 推广优化网站排名教程WordPress文件夹插件
  • 青海省住房和城乡建设厅门户网站汉邦未来网站建设
  • 竞价网站做不做链接wordpress制作分销网站
  • html5 手机 手机网站建站收费标准
  • 如何在自己网站开发互动视频photoshop网站模板
  • 如何做营销型单页网站网站制作案例
  • 网站建设的基本原则网络服务器下载
  • wordpress双站 中英文产品网络推广方式
  • 自己建网站写小说重庆建网站计划
  • 职教集团网站建设网站建设那个比较好
  • 设计门户网站广告设计公司排行
  • win7 iis网站无法显示该页面杭州企业网站建设哪家好
  • 网站建设pqiw抖音代运营怎么解绑
  • 呼市网站制作招聘网站建设公司豆瓣
  • 可拖拽式网站建设网站建设遇到哪些危险
  • 设计作品欣赏网站wordpress logo 字体