Hexo博客集成Gitalk评论
next高版本的已经默认集成gitalk插件, 如果你本地没找到配置,尽快升级。目前我使用的是next 7.x版本,故只需要在_config.yml中打开gitalk配置即可
- 在GitHub新建Application
用于用户评论文章时登录授权
next高版本的已经默认集成gitalk插件, 如果你本地没找到配置,尽快升级。目前我使用的是next 7.x版本,故只需要在_config.yml中打开gitalk配置即可
用于用户评论文章时登录授权
JVM在可创建线程的数量上存在一个限制,这个限制值将随着平台的不同而不同,并且承受着多个因素制约,包括JVM的启动参数、Thread构造函数中请求栈的大小,以及底层操作系统对线程的限制等。如果破坏了这些限制,那么可能抛出OutOfMemoryError异常。
使用Executors中创建线程池的快捷方法, 实际上是调用了ThreadPoolExecutor的构造方法(定时任务使用的是ScheduledThreadPoolExecutor、CompletableFuture默认使用的是ForkJoinPool)
JMH和jMeter的使用场景还是有很大的不同的,jMeter更多的是对rest api进行压测,而JMH关注的粒度更细,它更多的是发现某块性能槽点代码,然后对优化方案进行基准测试对比。比如json序列化方案对比,bean copy方案对比,文中提高的洗牌算法对比等。
JMH比较典型的应用场景有:
将测试例子结果的 json 文件导入,就可以实现可视化
Java项目编程中,为了充分利用计算机CPU资源,一般开启多个线程来执行异步任务。多线有很多好处,其中最重要的是:
随着工业的进步,现在的笔记本、台式机乃至商用的应用服务器至少也都是双核的,4核、8核甚至16核的也都不少见,如果是单线程的程序,那么在双核CPU上就浪费了50%,在4核CPU上就浪费了75%。单核CPU上所谓的”多线程”那是假的多线程,同一时间处理器只会处理一段逻辑,只不过线程之间切换得比较快,看着像多个线程”同时”运行罢了。多核CPU上的多线程才是真正的多线程,它能让你的多段逻辑同时工作,多线程,可以真正发挥出多核CPU的优势来,达到充分利用CPU的目的。
从程序运行效率的角度来看,单核CPU不但不会发挥出多线程的优势,反而会因为在单核CPU上运行多线程导致线程上下文的切换,而降低程序整体的效率。但是单核CPU我们还是要应用多线程,就是为了防止阻塞。试想,如果单核CPU使用单线程,那么只要这个线程阻塞了,比方说远程读取某个数据吧,对端迟迟未返回又没有设置超时时间,那么你的整个程序在数据返回回来之前就停止运行了。多线程可以防止这个问题,多条线程同时运行,哪怕一条线程的代码执行读取数据阻塞,也不会影响其它任务的执行。
java1开始,常见的两种创建线程的方式。一种是直接继承Thread,另外一种就是实现Runnable接口。
从源码中可以看到,Thread也是实现Runnable接口的: