cpu个数、核数、线程数、Java多线程关系的理解

2017年12月08日15:35:37一cpu个数、核数、线程数的关系cpu个数:是指物理上,也及硬件上的核心数;核数:是逻辑上的,简单理解为逻辑上模拟出的核心数;线程数:是同一时刻设备能并行执行的程序个数,线程数=cpu个数*核数二cpu线程数和Java多线程首先明白几个概念: (1)单个cpu线程在同一时刻只能执行单一Java程序,也就是一个线程(2)单个线程同时只能在单个cpu线程中执行(3)线程是操作系统最小的调度单位,进程是资源(比如:内存)分配的最小单位(4)Java中的所有线程在JVM进程中,CPU调度的是进程中的线程(5)Java多线程并不是由于cpu线程数为多个才称为多线程,当Java线程数大于cpu线程数,操作系统使用时间片机制,采用线程调度算法,频繁的进行线程切换。a那么java多进程,每个进程又多线程,cpu是如何调度的呢?个人理解:操作系统并不是单纯均匀的分配cpu执行不同的进程,因为线程是调度的最小单位,所以会根据不同进程中的线程个数进行时间分片,均匀的执行每个线程,也就是说A进程中有10个线程,而B进程中有2个进程,那么cpu分给进程的执行时间理...

关于Java代码优化的44条建议!

本文是作者:五月的仓颉 结合自己的工作和平时学习的体验重新谈一下为什么要进行代码优化。在修改之前,作者的说法是这样的:就像鲸鱼吃虾米一样,也许吃一个两个虾米对于鲸鱼来说作用不大,但是吃的虾米多了,鲸鱼自然饱了。代码优化一样,也许一个两个的优化,对于提升代码的运行效率意义不大,但是只要处处都能注意代码优化,总体来说对于提升代码的运行效率就很有用了。这个观点,在现在看来,是要进行代码优化的一个原因,但不全对。在机械工艺发展的今天,服务器动辄8核、16核,64位CPU,代码执行效率非常高,StringBuilder替换StringBuffer、ArrayList替换Vector,对于代码运行效率的提升是微乎其微的,即使是项目中的每个点都注意到了,代码运行也看不出什么明显的变化。我认为,代码优化的最重要的作用应该是:避免未知的错误。在代码上线运行的过程中,往往会出现很多我们意想不到的错误,因为线上环境和开发环境是非常不同的,错误定位到最后往往是一个非常小的原因。然而为了解决这个错误,我们需要先自验证、再打包出待替换的class文件、暂停业务并重启,对于一个成熟的项目而言,最后一条其实...

java8 遍历数组的几种方式

2017年04月05日09:15:46阅读数:4640风格色 2017-02-1118:41有如下一个String数组String[]array={"a","b","c","d","e"};1.根据下标遍历for(inti=0;i<5;i++){}2.foreach遍历for(Stringx:array){3.迭代器遍历Listlist=Arrays.asList(array);4.stream遍历Arrays.asList(array).stream().forEach(x->System.out.println(x));也可以这样写:Arrays.asList(array).stream().forEach(System.out::println);...

java单个方法达到了65536字节的限制

 可以使方法更小的一件事是关闭调试。打开调试时,每一行(带代码)都有一个标记该行的语句。不。重构代码。没有方法应该那么久。永远。 Writesmallmethods! 说真的:任何IDE都会指导您完成重构,但需要完成。您可能还想阅读Refactoring:ImprovingtheDesignofExistingCode以获取指导。 如果代码是由JSP页面生成的,则可能超过64kmethodlimit。像Weblogic这样的Web容器实际上会解决这个问题。Tomcat不会,也许你以前使用过不同的Web容器?要解决此问题,thispage建议您更改静态包含,如下所示:<%@includefile="test.jsp"%>动态包括这样:<jsp:includepage="test.jsp"/>更新:因为你正在处理一个servlet,你可能运气不好。这是JVM规范的限制,请参阅WhydoesJavalimitthesizeofamethodto65535byte?我不相信您会找到一个可以解决它的编译器。您可能会对ProGuard...

Java/JSP/JS Debug笔记

2006年的blog,当时好生涩啊: ------------------------谨以此文献给我没有头绪或心劲去debug的日子和很多辛苦debug的同志们。   应部门一个科的需求,给他们写一个夜维日志记录的功能模块,本来是个很小的需求,计划一周内上线的,可能是我这个人比较偷懒,用了一点点以前略有不同的实现方式,搞得它之后的复杂需求都完成了,它那个模块还由于bug重重没有调试出来。    本来这种模块可以用4到5个页面实现,为了图方便,仅用了两个页面实现,导致内容更新页面代码过多,所以在这个页面,问题比较多。   东西写完基本代码快一个月了,刚出来的那段时间,可能是比较忙或者身体、心情的原因,debug一直是一筹莫展,最近感觉心劲还不错,把那个模块拿出来慢慢debug,今天一天(有点其他的杂事)定位了2个bug,解决了一个,一个还没有完全解决。   第一个bug:这个夜维日志字段比较多,还需要上传附件,本来附件上传这个功能是比较熟悉的,可是我...

关于JavaScript的那些话

1、初学者动手环境----推荐Chrome的控制台(F12调用)2、JS中两个非常重要的数据类型是对象和数组。3、JavaScript程序是用Unicode字符集编写的。4、JavaScript是区分大小写的编程语言。HTML不区分大小写,但尽量保持小写。5、JavaScript数据类型分为两类:原始类型和对象类型,原始类型有数字、字符串、布尔值、null和undefined,除这些之外都是对象。原始类型数据可以通过临时包装成为对象,原始类型数据值是不可更改的。相应出现了值类型和引用类型及相关比较问题。6、null和undefined是无法拥有方法的值7、客户端下的全局作用域下的this就指向全局Window对象。8、闭包与单例变量----建议认真阅读犀牛书的函数和类章节9、类和原型10、FileReaderinChrome11、子集与扩展...

JavaScript教程大纲

   因为考虑到Python的接受难度,改为推广较为简单和流行的JavaScript。先列主要参考资料:     JavaScript权威指南(第6版):http://book.douban.com/subject/10549733/     JavaScript高级程序设计:http://book.douban.com/subject/10546125/     JavaScript语言精粹:http://book.douban.com/subject/3590768/     高性能javascript http://book.douban.com/subject/5362856/     JavaScript模式 http://book.douban.com/subject/11506...

Sending forms through JavaScript

https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Sending_forms_through_JavaScriptAsinthe previousarticle, HTMLformscansendan HTTP requestdeclaratively.ButformscanalsoprepareanHTTPrequesttosendviaJavaScript.Thisarticleexploreswaystodothat.With openWebapps,it'sincreasinglycommontouse HTMLforms otherthanliteralformsforhumanstofillout—moreandmoredevelopersaretakingcontrolovertransmittingdata.GainingcontroloftheglobalinterfaceStandardHTMLformsubmissio...

Java 9和Java 10的新特性

http://www.infoq.com/cn/news/2014/09/java9 继2014年3月份Java8发布之后,OpenJDK加快了开发速度,Java9的发布已经提上日程。预计在2016年发布Java9,同时公布了JEP(JDK改进提议)中的前期列表。任职于Takipi的AlexZhitnitsky整理了Java9中一些纳入JSR(Java规范提案)的新特性和大家一直期待但未确定的一些特性。这些特性有Jigsaw项目、新的智能编译工具、期待已久的API(如简化了的进程API、JSONAPI、货币处理API等)、代码分段缓存等。现就对这些特性进行了一个全面的梳理。1、 Jigsaw 项目:模块化JDK源码Jigsaw项目即JEP201是为了模块化Java代码,并将JRE分成相互协作的组件。这个JEP是迈向Jigsaw四步中的第一步,它只是模块化JDK源代码,不会改变JRE和JDK的真实结构,从而使得编译系统能够模块编译并在构建时检查模块边界。这个项目原计划随Java8发布,但因为推迟,所以被放到了Java9中。Jigsaw项目一旦完成,将允许开发...

测试工程师,选择python还是java?

问:“你平时工作中,用java多还是用python多”?答:“都还可以,根据具体的场景选择不同的语言”。问:“比如说呢”?答:“开发自己的测试平台,肯定会选择java;在centos服务器跑一些脚本,会选择python或shell;某些压测场景,追求高并发,可能会选择go语言”。问:“我java和python都学了一些基础知识,不知道该选择哪种语言”。答:“可以先选择一门你相对擅长的语言,先开始用起来”。这是前两天,一位身边的小伙伴和我的对话。相信有这样疑问的人不在少数,就是自己到底该选择python?还是java?作为自己主要的语言,这样就能专心的将一门语言学好,因为人的精力毕竟是有限的。我先抛出我的观点和建议:“其实语言是次要的,毕竟都是为测试工作服务,不要让选择阻碍了我们前进的脚步。你要做的仅仅是行动起来!就选择python(其实语言无所谓,我的建议如果没基础,就从python开始),先用起来再说。不要怂,就是干!&rdquo...

druid抛出的异常------javax.management.InstanceAlreadyExistsException引发的一系列探索

  最近项目中有个定时任务的需求,定时检查mysql数据与etcd数据的一致性,具体实现细节就不说了,今天要说的就是实现过程中遇到了druid抛出的异常,以及解决的过程  路漫漫其修远兮,吾将上下而求索!  github:https://github.com/youzhibing  码云(gitee):https://gitee.com/youzhibing  详细信息五月05,20174:16:00下午com.alibaba.druid.proxy.DruidDriverwarn警告:registerdruid-drivermbeanerrorjavax.management.InstanceAlreadyExistsException:com.alibaba.druid:type=DruidDriveratcom.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:437)atcom.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerWithReposito...

cassandra高级操作之分页的java实现(有项目具体需求)

  接着上篇博客,我们来谈谈java操作cassandra分页,需要注意的是这个分页与我们平时所做的页面分页是不同的,具体有啥不同,大家耐着性子往下看。  上篇博客讲到了cassandra的分页,相信大家会有所注意:下一次的查询依赖上一次的查询(上一次查询的最后一条记录的全部主键),不像mysql那样灵活,所以只能实现上一页、下一页这样的功能,不能实现第多少页那样的功能(硬要实现的话性能就太低了)。  我们先看看驱动官方给的分页做法  如果一个查询得到的记录数太大,一次性返回回来,那么效率非常低,并且很有可能造成内存溢出,使得整个应用都奔溃。所以了,驱动对结果集进行了分页,并返回适当的某一页的数据。  路漫漫其修远兮,吾将上下而求索!  github:https://github.com/youzhibing  码云(gitee):https://gitee.com/youzhibing  抓取大小指的是一次从cassandra获取到的记录数,换句话说,就是每一页的记录数;我们能够在创建cluster实例的时候给它的fetchsize指定一个默认值,如果没有指定,那么默认是5000//...

Cassandra-java操作——基本操作

  接着上篇博客,我们来谈谈java操作cassandra;上篇博客的环境:jdk1.7+python2.7.10+cassandra2.2.8;由于2.2.8没有对应的驱动文档,那么我们就用3.0的驱动文档,而驱动则用2.1.10.3版本;  驱动文档:http://docs.datastax.com/en/developer/java-driver/3.0/manual/  路漫漫其修远兮,吾将上下而求索!  github:https://github.com/youzhibing  码云(gitee):https://gitee.com/youzhibing  老规矩,创建maven工程,让maven来维护我们的jar,maven最重要的pom文件内容如下:<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http:/...

Java 14 开箱,它真香香香香

Java14已经发布有一周时间了,我准备来开个箱,和小伙伴们一起来看看新特性里面都有哪些好玩的。我们程序员应该抱着尝鲜、猎奇的心态,否则就容易固步自封,技术停滞不前。先来看看Java14都有哪些新特性吧!红色线划出来的是我比较感兴趣的,其余的对我没什么太大的吸引力,就暂且略过。01、下载JDK14要想开箱,得先下载JDK14,不然拿什么开箱呢,对吧?有2处地方可供下载,Oracle上可以下载商用版,jdk.java.net上可以下载开源版。我们就选择后者吧。我目前用的是Windows操作系统,所以就选择Windows版的zip包进行下载,完成后记得解压。02、升级IntelliJIDEA需要把IDEA升级到抢先体验版2020.1EAP,否则无法支持Java14的新特性。社区版的下载地址如下所示:[https://www.jetbrains.com/idea/nextversion/#section=windows](https://www.jetbrains.com/idea/nextversion/#section=windows)安装的时候可以把之前的版本卸载,也可以选择保留。完成...

Java 8 Optional 良心指南,建议收藏

想学习,永远都不晚,尤其是针对Java8里面的好东西,Optional就是其中之一,该类提供了一种用于表示可选值而非空引用的类级别解决方案。作为一名Java程序员,我真的是烦透了NullPointerException(NPE),尽管和它熟得就像一位老朋友,知道它也是迫不得已——程序正在使用一个对象却发现这个对象的值为null,于是Java虚拟机就怒发冲冠地把它抛了出来当做替罪羊。当然了,我们程序员是富有责任心的,不会坐视不管,于是就有了大量的null值检查。尽管有时候这种检查完全没有必要,但我们已经习惯了例行公事。终于,Java8看不下去了,就引入了Optional,以便我们编写的代码不再那么刻薄呆板。01、没有Optional会有什么问题我们来模拟一个实际的应用场景。小王第一天上班,领导老马就给他安排了一个任务,要他从数据库中根据会员ID拉取一个会员的姓名,然后将姓名打印到控制台。虽然是新来的,但这个任务难不倒小王,于是他花了10分钟写下了这段代码:public class WithoutOptionalDemo {   ...
首页上一页...562563564565566...下一页尾页