- 博客(17)
- 资源 (7)
- 问答 (1)
- 收藏
- 关注
原创 [Java多线程编程之五] 线程通信
在多线程环境中,多个线程之间互相协作,以达到高效实现程序功能的目的,比如某些多线程程序要求线程执行有先后顺序、获取某个线程的执行结果,要想实现多个线程之间的协同,就需要线程之间互相通信,线程通信主要分为一下四类:1)文件共享2)网络共享3)共享变量4)JDK提供的线程协调API(主要有:suspend/resume、wait/notify、park/unpark)一、文件共享...
2019-10-14 00:06:04
163
原创 [Java多线程编程之四] CPU缓存和内存屏障
一、CPU三级缓存1、缓存的作用 CPU的结构很复杂,简单地说由运算器和寄存器组成。程序运行时,需要CPU去执行运算,运算是由运算器来执行,运算器可以做加减乘除运算以及与或非逻辑运算,运算过程中可能需要临时存放数据到某个地方,寄存器就起到这个作用。 虽然寄存器可以存储一些运行时数据,但是容量是很小的,程序运行时产生的大部分数据(比如Java对象)是存储在内存中的,并且程序指令也是存...
2019-10-14 00:02:13
429
原创 [Java多线程编程之三] 线程中止的多种姿势
一、错误的姿势- StopThread.stop()1、存在问题 不管程序的运行逻辑如何,stop会直接中止线程,并清除监控器锁的信息,如果有些代码块的运行具有原子性,则stop可能会破坏这种原子性导致线程安全问题,所以JDK已不建议使用。2、代码示例 定义一个Thread的子类StopThread,在重写的run()中,++i和++j被包裹在同一同步代码块中,目的是...
2019-10-13 23:58:25
172
原创 [Java多线程编程之二] 当初叫人家小甜甜,现在叫我牛夫人 —— 多变的线程状态
一、线程生命周期与状态 一个线程从创建、运行到终止称为一个生命周期,线程在其生命周期中要经历创建、就绪、运行、阻塞、等待、终止多种状态,这多种状态的转换图如图所示: 当一个线程对象被创建时,状态为New;当线程启动时,进入Runnable状态;当线程运行由于资源或锁被占用时,进入Blocked状态;当线程休眠时,进入等待状态;当线程执行完毕或发生中断异常是时,线程运行结束,进入Termi...
2019-10-13 23:53:54
161
原创 [Java多线程编程之一] Java代码是怎么运行起来的?看完这篇你就懂了!
一、关于解释型和编译型语言 解释型语言就是源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释执行,如Python/JavaScript/Perl/Shell/PHP等都是解释型语言,因为代码是在运行时才被翻译成机器码,所以运行效率相对编译型语言比较低。 编译型语言是相对于解释型语言存在的,编译型语言首先由编译器将源代码编译生成机器语言,再由机器运行机器码(二进...
2019-10-13 17:35:11
356
转载 linux下phpstorm的安装
1、清除openjdksudo apt-get purge openjdk*2、添加源及更新源列表sudo apt-add-repository ppa:webupd8team/javasudo apt-get update3、安装oracle-java
2017-01-13 18:54:34
6229
原创 nginx配置详解
如果你的网站的服务器是nginx,你可能需要经常对nginx的配置做变动和修改,了解nginx的配置非常重要。user www; # Nginx用户及组:用户 组。window下不指定worker_processes 1; # 工作进程:数目。根据硬件调整,通常等于CPU数量或者2倍于CPU。error_log logs/error.log; error_
2017-01-11 21:16:12
295
原创 linux中nginx挂载php-fpm
这里要明确nginx和php-fpm的关系和工作原理,nginx是一个HTTP服务器,但是它默认解析的是html和htm文件,不会解析php文件,而php-fpm,不要说得太复杂,就知道它用来解析php的就好了,但是我们访问的是nginx上的php文件,这时需要让nginx把php相关东西转发给php-fpm,php-fpm解析完后返回给nginx显示出来。这里nginx的安装目录是/usr/
2017-01-11 17:30:50
1989
原创 ubuntu中安装nginx
>1、nginx简介Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个IMAP/POP3/SMTP 代理服务器。Nginx 是由Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例
2017-01-11 15:32:27
375
原创 ubuntu中apache的配置详解
在ubuntu中,apache是跟php一起安装的,如果安装启动成功,打开浏览器输入localhost,可以看到一个关于apache的引导说明页,里面包含了很多东西,下面对apache引导页说明和配置做简单介绍说明1、解读apache安装成功引导说明页(1)从引导说明页第一部分可知引导页的位置是/var/www/html/index.h
2017-01-11 00:25:53
3932
原创 ubuntu中安装Mysql
1、检测系统是否已安装了Mysql输入mysql --help,如果出现一串常常的东西,说明已经安装了;否则进行步骤22、安装Mysqlsudo apt-get install mysql-serversudo apt-get install mysql-clientsudo apt-get
2017-01-11 00:16:27
265
原创 ubuntu中安装PHP
1、为了防止找不到镜像源和安装包先更新软件获取源sudo apt-get updatesudo apt-get update2、安装PHPsudo apt-get install php5安装完毕,版本号为5.6.11
2017-01-10 17:07:13
427
原创 ubuntu中的sudo apt-get命令
sudo apt-get命令是ubuntu中最常用的shell命令之一,通常使用这个命令给ubuntu系统安装软件和服务,跟centos中yum的地位是一样的。常用的命令使用总结如下:apt-cache search package 搜索软件包apt-cache show package 获取包的相关信息,如说明、大小、版本等sudo apt-get install p
2017-01-10 17:05:55
2067
原创 总结4 如何在自定义的框架中使用PHP异常和错误机制
对PHP的错误和异常,很多人只知道在框架中怎么使用,框架封装这些东西的原理是怎么样的?设计时需要注意些什么?如何在自己写的PHP框架中整合异常和错误?看完下面的内容后相信你能迎刃而解了!一、异常处理的目的 从一个简单的例子说起,有一个网站,需要登录和注册的功能,假设处理这两个功能的类为Auth,则这个类中应该有login()和register()的
2016-12-28 16:45:52
3324
原创 总结3:PHP中的魔术引号
阅读PHP框架源码时发现很多框架都对魔术引号做了兼容处理,总结如下:1、魔术引号的作用是什么? 魔术引号设计的初衷是为了让从数据库或文件中读取数据和从请求中接收参数时,对单引号、双引号、反斜线、NULL加上一个一个反斜线进行转义,这个的作用跟addslashes()的作用完全相同。2、转义的作用?
2016-12-27 10:42:26
636
原创 总结2: PHP中的魔术方法及其应用场景
PHP中有一类特别的系统方法,它们统一以__开头,使用语义清晰简单,这类形式特殊、作用特殊的方法被称为魔术方法。常见的魔术方法有__construct()、__destruct()、__call()、__callStatic()、__get()、__set()、__isset()、__unset()、__sleep()、__wakeup()、__toString()、__invoke()、__set
2016-11-11 18:18:06
1950
1
原创 总结1:PHP中的对象和类
谈到高级语言程序设计,就必谈面向对象和类。编程经过了面向过程、面向函数、面向对象的三大发展历程,面向过程、面向函数、面向对象也因此被称为编程三大范式。为什么我们提倡面向对象?因为它让我们的代码更有效更清晰同时更容易扩展,C++和Java是面向对象中最经典的两种语言,PHP不是一种纯粹的OOP语言,但随着时代潮流,新的标准中也不断增加支持新的面向对象的特性。关于PHP中的对象,让我们从一个实例说起:1
2016-11-08 23:32:59
280
第一本Docker书 PDF电子书下载 带书签目录 完整版 下载链接和密码
2017-10-28
centos7下搭建Jenkins实录
2017-09-16
Linux Shell脚本攻略 高清.pdf版
2017-09-13
ubuntu下使用virtual box安装xp失败
2016-03-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人