- 博客(21)
- 收藏
- 关注
原创 为什么理解jvm抢占式线程调度
抢占式调度和分时调度一样是每个线程都有时间片,运行时间到了就会停下来换人,而他的抢占体现在优先级上,只要等待队列中有高优先级的线程那么当前的cpu执行权就会在合适的时间被高优先级的线程栈抢占,所以可以理解为linux线程调度策略其实就是一种抢占式调度和jvm的调度策略是一样的。抢占式调度就是分式调度的一种升级版和他对应的是非抢占式是指只要线程掌握了执行权,他就会一直运行,除非他有io操作,或者主动停下来进行线程让步。我们都知道linux是时间片轮询的,那抢占式调度和分时调度又有什么区别?
2023-09-23 12:29:58
83
原创 线程的调度和线程的同步
这里就涉及线程的调度策略了,为了让每个线程都能被及时响应,cpu需要公平的快速的轮询每个线程同时有些线程喜欢优先被执行,那就需要提高优先级,有了优先级就会有了插队的情况,就会出现线程饥饿,操作系统是怎样平衡这个需求?其实线程每次调用schedule函数那些没有被选中的线程优先级都会被增加一次,这样越久没有被宠幸的线程优先级就会越高,下一次就越容易被选上,线程之间是如何同步的?说到调度,线程调度操作系统是时间片轮询,怎么裂解jvm的抢占线程调度。
2023-09-23 12:18:38
52
1
原创 从操作系统角度,理解线程伤上下文切换
内核肽拥有更高级别的权限,系统调用时需要由用户肽转向内核肽,在进入内核肽的时候,用户肽的寄存器需要保存在内核肽,在返回的时候时候需要回复这些寄存器的内容,这样的切换会带来一定的内存开销,什么多线程的切换,在线程切换的时候cpu会记录此时的工作线程的程序计数器和寄存器,下一次回来的时候,通过切换tcb恢复线程的环境。为了避免上层的应用随意的修改和访问底层的资源,操作系统提供了用户肽和内核肽的概念。线程池的核心线程数我们应该如何设置?
2023-09-23 10:47:45
37
1
原创 行为类模式--策略模式
一 定义,类型及类图定义:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换。(策略模式定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户——出自《大话设计模式》) 类型:行为类模式 类图策略模式是对算法的封装,把一系列的算法分别封装到对应的类中,并且这些类实现相同的接口,相互之间可以替换。在前面说过的行为类模式中,有一种模...
2019-11-19 11:57:32
217
原创 数据导出功能
private void export(String sheetName, String fileName, List<Map<String,Object>> listDate, LinkedHashMap<String,String> linkMap) throws Exception{ //linkedHas...
2018-10-31 18:03:58
604
原创 多肽_其他
1.多肽是很好的面向对象编程思想,很高的提高了代码的复用性,继承和组合都是多肽的很好表现,那在什么时候使用继承的方式表示定义的两个对象有多数的联系只有行为 上的差异,组合实在一个对象中需要添加多个属性来功能和成另外一个对象的时候使用。2.在多肽的方法重载时候,有一种情况叫做协同重载,就是重载的方法返回值可以是父子类关系,使用的情况比如子类是的方法是一个具体的实现功能时候,就可以返回要实现功能的父类...
2018-04-06 09:51:54
250
原创 多肽
面向对象编程的目标:松耦合,高聚合,纯封装松耦合:松耦合是实现模块功能之间的独立,相互之间的功能连接最后只是接口调用,不牵扯内部代码的交互高聚合:模块功能的纯单一,类功能的春单一。纯封装:类的成员变量都为私有,调用或赋值通过统一的方法接口实现java代码的绑定有两种一种是前绑定,一种是后绑定。前绑定:比如是static,final等修饰的方法,或者属性。后绑定:其他关键字所修饰的方法或者属性,这样...
2018-04-05 18:02:34
361
原创 复用类_类,程序的加载顺序
类的加载过程:类的加载,一个类如果存在父类,那么程序就会先去加载他的父类,一层一层的向上而将这些父类和子类的成员串起来后,先根据顺序加载静态成员,静态成员进行初始初始化,这里的静态成员包括静态的变量和静态的方法,然后再是普通成员初始化,再是构造方法,构造方法的执行顺序也是从基类开始,然后再到子类,然后到方法注意:所有的静态都是在启动入口main方法之前加载的...
2018-04-05 15:21:44
105
原创 复用类_final关键字
final关键字可以用来修饰:变量成员,方法,类1.final修饰变量成员:final修饰基本变量成员表示变量的值不能再改变,修饰引用对象类型表示对象的引用不能再改变,不牵扯内存总结的来说,final在修饰成员变量时候就是控制它的引用,在说白点就是控制堆栈中的存储,而static修饰的一般都是控制内存的,也就是说是用来控制堆中的值的,static修饰变量表示堆中存储的数据,在类加载的时候就被开辟,...
2018-04-05 14:45:59
144
原创 复用类_protectd和向上转移
1.protected的复用protected一般在开发中很少用到,适用的场景一般是一个方法功能对客户端保持私有,但是对于它的子类可以进行操作package leaning;public class Orc extends Villain{ private int OrcNumber; package leaning;public class Wind extends Instrum...
2018-04-05 09:50:43
196
原创 复用类
类的复用有两种方式:组合和继承1.组合是将一个对象或者是属性,作为另外一个类,对象的成员去使用。比如你要吃饭,把吃饭作为一个对象的化,在他里面需要组合的有筷子,饭,人2.继承也是复用类的一种,子类可以继承父类的所有属性,方法。作为自己的去实现功能,当子类继承父类的成员时候,程序的执行过程是先从父类的最高级进行执行,然后到下一级,然后再到下下一级,并且当父类的构造方法需要传递参数,那么子类就必须继承...
2018-04-04 11:21:53
466
原创 访问权限控制_类的访问权限
1,在开发中业务的一个方法不能太复杂,对于复杂的方法要根据它的业务进行拆分,对于主干方法可以定义为public类型对于其他需要调用的都设置为private的,然后通过在共有的方法里面调用私有的方法,这样写的好处还有:就是在不同的业务对于遇见的统一段相同的业务出来可以重复调用同一个;2.类的调用一般是通过控制构造方法的访问权限来控制的,比如单例模式,就是将类的构造方法私有化,然后通过一个公共的静态的...
2018-04-04 10:16:25
401
原创 访问权限控制_访问修饰词
四个访问修饰词:public , protected,private,和默认1.public访问修饰词定义的方法属性等是公共的,所有的包,类都可以调用2.默认的修饰符表示同包的文件可以访问,不同包其他的都不能访问3.private表示私有的,只有在定义的本类中自己访问,面向对象的思想就是:属性都定义为私有的方法都是共有的,要设置属性就必须通过方法去访问设置,保证了属性的正确性4.protecte...
2018-04-04 09:37:50
327
转载 CentOS7 64位下MySQL5.7安装与配置(YUM)
安装环境:CentOS7 64位 MINI版,安装MySQL5.71、配置YUM源在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/ # 下载mysql源安装包shell> wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm...
2018-02-22 14:12:46
137
转载 centos7安装ssh服务
1、查看是否安装了相关软件:rpm -qa|grep -E "openssh"1显示结果含有以下三个软件,则表示已经安装,否则需要安装缺失的软件openssh-ldap-6.6.1p1-35.el7_3.x86_64 openssh-clients-6.6.1p1-35.el7_3.x86_64 openssh-6.6.1p1-35.el7_3.x86_64 openssh
2018-02-07 15:50:28
491
原创 快速搭建vim的python的集成环境
运行下面两个命令,即可把 Vim(含插件)配置成 Python IDE。目前支持 MAC 和 Ubuntu。Shell12curl -O https://raw.githubusercontent.com/vince67/v7_config/master/vim.shbash vim.s
2017-12-16 16:22:53
198
转载 vim-编辑器之神
vi与vimvi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器。他是我们使用Linux系统不能缺少的工具。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,学会它后,您将在Linux的世界里畅行无阻。vim 具有程序编辑的能力,可以以字体颜色辨别语法的正确性,方便程序设计;因为程序简单
2017-12-16 13:45:31
280
原创 linux下安装sublim的几种有效方法
一.通过Package Manager(apt-get):Sublime-Text-2:sudo add-apt-repository ppa:webupd8team/sublime-text-2sudo apt-get updatesudo apt-get install sublime-textSublime-Text-3:sudo add-apt-rep
2017-12-09 10:39:02
481
原创 ubuntu 解决“无法获得锁 /var/lib/dpkg/lock -open (11:资源暂时不可用)”的办法
在ubuntu系统的termial下,用apt-get install 安装软件的时候,如果在未完成下载的情况下将terminal close。此时 apt-get进程可能没有结束。结果,如果再次运行apt-get install 命令安装如今,可能会发生下面的提示: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) 无法锁定管理目
2017-12-08 23:49:02
204
原创 利用Eclipse统计代码行数+
打开Search中的File Search,在containg text中输入\n,勾选Regular expression(正则表达式),File name patterns则输入*.java(如果有其他的想算进去可以继续, *.js, *.jsp……),如果是统计选中的资源(可以是多个),则Scope选择selected resources;如果要统计选中的项目(可以是多个
2017-08-18 11:15:49
475
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人