说明 本文主要讨论了巨型复杂业务系统的一种构建思路,力图实现决策意志的快速.准确.一致的下传并简化实施成本提供实施效率.通过全业务领域的即时流程编排,实现全网业务IT系统的快速建设与迭代.本文所讲的方法其应用情景主要面向以业务流程为主的大型业务处理系统如电商系统.尤其适合业务繁杂.业务量巨大且运营灵活多变的应用情景.我们一般要花很长时间并投入很多财力才能打造出一个系统来满足这样的要求,并保持大量的人员来跟进运营的需要.这些系统一般会有数个或数十个乃至上百个应用群构成,具有庞大的层级结构.其中的每…
线程协作 首先引入一段代码: package 线程间数据共享; import java.util.Date; public class Watch { private static String time; static class Display extends Thread{ Time timeThread; Display(Time time) { this.timeThread=time; } @Override public void run() { if(time==null){ }…
wait/notify()关键字适用于一个线程通知另一个线程所需的条件状态已就绪,最常用于线程在循环中休眠直到获取特定条件的场景. 例如,一个线程一直等待直到队列中有一个组件能够处理:当组件添加到队列时,另一个线程能够唤醒这个等待的线程. 如下代码演示线程间的协作: package thread_waitnotify; public class ProductFactory { class Worker implements Runnable { private final Object loc…
目录 1.服务的介绍 2.Windows系统中的服务 3.Linux系统中服务的分类 4.独立的服务和基于xinetd服务的区别 5.如何查看一个服务是独立的服务还是基于xinetd的服务 (1)查看系统中独立的服务 (2)查看系统中基于xinetd的服务 1.服务的介绍 计算机中的服务是一种能执行指定系统功能的程序,在系统后台运行. 服务应用程序通常可以在本地和通过网络为用户提供一些功能,每个程序都有一定的或者说是特定的功能,它所提供的所能实现的未必是你直接需要的,有的是以便支持其他的程序,尤…
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 一般的WinForm中通过C#自带的Event机制便能很好的实现事件的注册和分发,但是,在插件系统中却不能这么简单的直接用已有的类来完成.一个插件本不包含另外一个插件,它们均是独立解耦的,实现插件和插件间的通信还需要我们设计出一个事件引擎来完成这个需求. 目前很多高级语言中基本都实现了观察者模式,并进行了自己的包装.比如C#中的delegate和event组合…
Linux系统中“动态库”和“静态库”那点事儿 /etc/ld.so.conf  动态库的后缀为*.so  静态库的后缀为 libxxx.a   ldconfig   目录名 转载自:http://blog.chinaunix.net/uid-23069658-id-3142046.html 今天我们主要来说说Linux系统下基于动态库(.so)和静态(.a)的程序那些猫腻.在这之前,我们需要了解一下源代码到可执行程序之间到底发生了什么神奇而美妙的事情. 在Linux操作系统中,普遍使用ELF格…
转自:http://blog.chinaunix.net/uid-23069658-id-3142046.html 今天我们主要来说说Linux系统下基于动态库(.so)和静态(.a)的程序那些猫腻.在这之前,我们需要了解一下源代码到可执行程序之间到底发生了什么神奇而美妙的事情. 在Linux操作系统中,普遍使用ELF格式作为可执行程序或者程序生成过程中的中间格式.ELF(Executable and Linking Format,可执行连接格式)是UNIX系统实验室(USL)作为应用程序二进制…
摘自http://blog.chinaunix.net/uid-23069658-id-3142046.html 今天我们主要来说说Linux系统下基于动态库(.so)和静态(.a)的程序那些猫腻.在这之前,我们需要了解一下源代码到可执行程序之间到底发生了什么神奇而美妙的事情. 在Linux操作系统中,普遍使用ELF格式作为可执行程序或者程序生成过程中的中间格式.ELF(Executable and Linking Format,可执行连接格式)是UNIX系统实验室(USL)作为应用程序二进制接…
原文:在Windows系统中安装集成的PHP开发环境 刚想学php的,又不会配置复杂php的环境,可以使用集成的,目前网上提供常用的PHP集成环境主要有AppServ.phpStudy.WAMP和XAMPP等软件,这些软件之间的差别不大.每种集成包都有多个不同的版本,可以下载版本比较高的任意一个集成软件安装使用. 我用的是appserv-win32-2.5.10.exe下载地址:http://www.appservnetwork.com/index.php?newlang=chinese App…
增加了两个文件,showline.c, showtext.c.分别为第二个和第三个示例程序的main函数相关部分.在ctbuf.h和textarea.h最开头部分增加了一句#include <stdlib.h>附件中一共有三个示例程序:第一个,飘动的“曹”字旗.代码为:flag.c, GLee.c, GLee.h第二个,带缓冲的显示文字.代码为:showline.c, ctbuf.c, ctbuf.h, GLee.c, GLee.h第三个,显示歌词.代码为:showtext.c, ctbuf.…
本文简单记录一下自己学习<通信原理>的时候调试的一个仿真DVB-C(Cable,数字有线电视)系统中QAM调制和解调的程序.自己一直是研究"信源"方面的东西,所以对"信道"这方面的知识进行实践的机会一直不是很多,做这个小程序的过程中也熟悉了不少相关的知识.在这个程序中,每执行一步操作,都会画出时域信号图和频域信号图,同时会在控制台打印出有关变量的取值,对于理解QAM调制与解调有一定的帮助. 一.DVB-C中QAM的调制与解调 简单介绍DVB-C系统中的Q…
虽然我们在Linux VPS.服务器安装WEB环境比较方便,可以选择面板或者一键包,但是有些我们需要深入学习的网友不会选择一键安装,而是会尝试编译安装.这样可以学到一些内在的技术.一般我们较为习惯选择Ubuntu系统,道理是这个系统软件安装起来比较简单,即便有不存在的源也会提示告知如何补充安装. 今天,BandwagonHost中文网在这里记录这篇如何在Ubuntu 18.04系统中安装Apache, MySQL和PHP环境.这里我们不是采用最新的或者指定的软件版本,而是直接在服务器中编辑自带的…
本文旨在分享新买了mac电脑,应该做哪些设置,帮助苹果电脑小白轻松上手使用mac电脑,当然,新电脑肯定是需要安装各种软件,这里,小编推荐一下可以看看小编写的mac软件装机必备Mac 装机必备软件推荐,小编还写过其他的专题,更多专题,可关注小编[微学徒],查看我的文章,也可上[风云社区 SCOEE],查找和下载相关软件资源. 软件专题 (一)综合类: Mac 装机必备软件推荐 2018年度最优秀mac软件及游戏推荐 深色模式下的精美炫酷软件 (二)设计类: 设计师必备的设计绘图软件 PS滤镜插件和…
如果说如何快速学习.了解Linux的话,我的答案是学命令.背命令!为何呢?对于一名新手来说,去学习Linux的思想.了解Linux的架构.明白Linux中“一切皆文件”概念虽然说是没有错,是对的.但是个人认为去学习这些“高大上”的东西不是一时半会的事儿,它需要一定的时间和经验去沉淀才能掌握.那么如何最快速了解Linux并使用呢?我依然觉得学命令.背命令,掌握命令是比较笨但却是比较快的方式. 我开始学习Linux的时候,问了前辈:我入门Linux需要掌握哪些命令呢?前辈说:你掌握60个不重复的命令…
现在已经进入了2018年,Android 8.0系统也逐渐开始普及起来了.三星今年推出的最新旗舰机Galaxy S9已经搭载了Android 8.0系统,紧接着小米.华为.OV等国产手机厂商即将推出的新年旗舰机也会搭载Android 8.0系统.因此,现在已经是时候需要让我们的应用程序对Android 8.0系统进行适配了. 其实在去年Android 8.0系统刚推出的时候,我就仔细翻阅过Google官方的功能变更文档.变更项着实不少,但是真正需要我们去进行功能适配的地方却并不多.总结了一下,最…
Linux操作系统的开机过程是这样的,即从BIOS开始,然后进入Boot Loader,再加载系统内核,然后内核进行初始化,最后启动初始化进程.初始化进程作为Linux系统的第一个进程,它需要完成Linux系统中相关的初始化工作,为用户提供合适的工作环境.红帽RHEL 7系统已经替换掉了熟悉的初始化进程服务System V init,正式采用全新的systemd初始化进程服务.如果您之前学习的是RHEL 5或RHEL 6系统,可能会不习惯.systemd初始化进程服务采用了并发启动机制,开机速度…
之前讲到 CPU 使用率的类型.除了上一节提到的用户 CPU 之外,它还包括系统 CPU(比如上下文切换).等待 I/O 的 CPU(比如等待磁盘的响应)以及中断 CPU(包括软中断和硬中断)等. 在上下文切换的文章中,一起分析了系统 CPU 使用率高的问题,剩下的等待 I/O的 CPU 使用率(以下简称为 iowait)升高,也是最常见的一个服务器性能问题.今天我们就来看一个多进程 I/O 的案例,并分析这种情况. 目录: 进程状态 案例分析 小结 进程状态 当 iowait 升高时,进程很可…
今天开始学习dotnet core的开发,距离Visual Stuio 2017正式版的发布,也就是VS20周岁的生日还有三天,在我的电脑上安装的是VS2017 Enterprise RC版, 在VS2017RC版本中dotnet core的版本是1.1版本,很快随着VS正式版的发布,2.0也随之上线了,dotnet core 1.1版本和之前的1.0版本呢,很大的区别就在于,project.json文件的变化,在1.1版本上,是把project.json合并到了.csproj和MSBuild文…
由安装两块网卡的linux系统中引起网络不通想到的 一天,小王突然急匆匆的来找我,他说:"我在机子上刚装的redhat怎么老也ping不通服务器,我网卡的驱动都安装了,ping 自己的两块网卡的IP都能通,可就时访问不了服务器.我输入[url]http://172.31.0.101[/url]就提示'当试图与172.31.0.101联系时,连接被拒绝'"我来到小王的机器前查看了一下网络配置.[root@rhas root]# ifconfig -aeth0      Link enca…
Linux系统中有趣的命令(可以玩小游戏) 前言 最近,我在看一些关于Linux系统的内容,这里面的内容是真的越学越枯燥,果然学习的过程还是不容易的.记得前几个月初学Linux时,有时候就会碰到小彩蛋,感觉还挺有趣的.今天学着学着就越来越累,就想着放松一下,恰好想起以前在Linux上碰到的一些有趣命令,就想着重新再手底下过一遍.也分享出来让每个人都玩一玩,虽然这些命令网上随处可见,但想着还是自己重新写一遍这些有趣的命令,毕竟我也都忘的差不多了 我的环境 第一.我是windows10 第二.用的虚…
在linux系统中你使用一些命令时(例如nmon.iostat 如下截图所示),有可能会看到一些名字为dm-xx的设备,那么这些设备到底是什么设备呢,跟磁盘有什么关系呢?以前不了解的时候,我也很纳闷. 其实dm是Device Mapper的缩写,Device Mapper 是 Linux 2.6 内核中提供的一种从逻辑设备到物理设备的映射框架机制,在该机制下,用户可以很方便的根据自己的需要制定实现存储资源的管理策略,当前比较流行的 Linux 下的逻辑卷管理器如 LVM2(Linux Volum…
前言     在<电商系统中的商品模型的分析与设计>中,对电商系统商品模型有一个粗浅的描述,后来有博友对货品和商品的区别以及属性有一些疑问.我也对此做一些研究,再次简单的对商品模型做一个介绍. 从SPU.SKU开始     首先我们需要澄清上篇中的这两个概念,在上篇文章中"货品"是指一种概念物品,这种物品并不是一个具体的实物,当它具备具体的属性.价格时,才是一种实物,也就是商品."商品"就是库存中一个具体的实物.例如:iphone6,就是一种货品,但用户…
TextView的autoLink属性为我们提供了很大的便利性,当文本中有网址,邮箱或电话的时候可以让我们方便地执行打电话发邮件等动作,不过也有一些问题,比如说设置autoLink包含email属性,当文本中有邮件地址时只要点击就可以调用邮件客户端来发邮件,但是如果当前系统中没有邮件客户端可供调用,程序会直接挂掉. 通过看Log可以发现,系统抛出了ActivityNotFoundException异常,并且Exception的getMessage中包含"mailto:xxxx@xxx.xxx&q…
在linux系统中安装VSCode(Visual Studio Code) 1.从官网下载压缩包(话说下载下来解压就直接可以运行了咧,都不需要make) 访问Visual Studio Code官网 https://code.visualstudio.com/docs?dv=linux64 我是64位的: wget https://az764295.vo.msecnd.net/stable/7ba55c5860b152d999dda59393ca3ebeb1b5c85f/code-stable-…
今天在开发中遇到这么个问题,将连接的数据库改为服务器上的时候(服务器是Linux系统的),程序跑起来后一直出错,总提示数据库的表找不到, 而打开数据库看该表明明是存在的,在我的印象中MySQL数据是不区分大小写的,后来查资料才发现,在Linux系统中MySQL默认是严格区分大小 写的,可以在配置文件中添加配置, 用root帐号登录后,在/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写:…
word.excel是32位的组件,当用户64位系统在运行窗口中输入dcomcnfg命令时,在打开的组件服务管理窗口,是找不到Microsoft Excel.word程序的.另外,Windows 环境下调试正常的程序,一拿到 Web 环境中就出错,怎么办呢?如果你也为此问题不知怎样解决而烦恼时,请来看看下面的方法吧. 一.打开32位dcom组件的方法:在“运行”窗口中输入comexp.msc -32 来打开32位的组件服务,就可看到excel组件了. 二. DCOM 的配置步骤:1.在应用程序列…
本节内容概要描述了Linux内核从开机引导到系统正常运行过程中对堆栈的使用方式.这部分内容的说明与内核代码关系比较密切,可以先跳过.在开始阅读相应代码时再回来仔细研究. Linux 0.12系统中共使用了4种堆栈.第1种是系统引导初始化时临时使用的堆栈:第2种是进入保护模式之后提供内核程序初始化使用的堆栈,位于内核代码地址空间固定位置处.该堆栈也是后来任务0使用的用户态堆栈:第3种是每个任务通过系统调用,执行内核程序时使用的堆栈,我们称之为任务的内核态堆栈.每个任务都有自己独立的内核态堆栈:第4…
读书笔记--[计算机病毒解密与对抗] 目录: 遍历进程&线程程序 终止进程 获取进程信息 获取进程内模块信息 获取进程命令行参数 代码运行环境:Win7 x64 VS2012 Update3 遍历系统中所有进程 #include <stdio.h> #include <windows.h> #include <TlHelp32.h> int main() { // 为进程的所有线程拍个快照 HANDLE hSnapshort = CreateToolhelp32…
文章背景: 今年七月份正式入职,公司主营ERP软件,楼主所在的组主要负责二次开发,使用的语言是Java. 什么叫二次开发呢?ERP软件的客户都是企业.而这些企业之间的情况都有所不同,一套标准版本的企业资源管理系统必然难以百分之一百地满足每一家公司的所有要求.所以,在客户提出需求之后,程序员对系统进行增减修改,这就是二次开发. 另外,我们组还负责修复客户报上来的各种漏洞. 学会如何添加新模块新功能 为什么说从头到尾只看代码是不可行的? 基本上,财务系统跨越的年限都会有十几二十年,代码数千万级别,更…
内容摘要:本文主要讨论和分析在UEFI+GPT模式下的Windows系统(主要是最新的Win10X64)中默认的分区结构和默认的分区大小,硬盘整数分区.4K对齐.起始扇区.恢复分区.ESP分区.MSR分区,哪些分区是必要的,删除是否会影响系统运行. 建议初级读者先了解什么是BIOS+MBR和UEFI+GPT,再阅读以下内容,因为涉及的内容太多,这些知识点不作为本文的讨论内容,建议百度搜索:"BIOS+MBR"."UEFI+GPT"."BIOS+MBR UE…