Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。 可以通过下图来简单了解条件语句的执行过程: if 语句 Python中if语句的一般形式如下所示:if condition_1: statement_block_1 elif condition_2: statement_block_2 else: statement_block_3 如果 "cond
控制器定义 控制器文件通常放在application/module/controller下面,类名和文件名保持大小写一致,并采用驼峰命名(首字母大写)。 一个典型的控制器类定义如下: <?php namespace app\index\controller; use think\Controller; class Index extends Controller { public fu
访问控制器 ThinkPHP引入了分层控制器的概念,通过URL访问的控制器为访问控制器层(Controller)或者主控制器,访问控制器是由\think\App类负责调用和实例化的,无需手动实例化。 URL解析和路由后,会把当前的URL地址解析到 [ 模块/控制器/操作 ],其实也就是执行某个控制器类的某个操作方法,下面是一个示例: <?php namespace app\index\contro
配置控制台 您可以在 config/kibana.yml 文件中添加以下配置: console.enabled 默认: true 。设置为 false 以禁用控制台。切换此配置将导致服务器在下次启动时重新生成资源,这可能会造成页面开始服务之前有些延迟。
资源控制器 资源控制器可以让你轻松的创建RESTFul资源控制器,可以通过命令行生成需要的资源控制器,例如: // 生成index模块的Blog资源控制器 php think make:controller index/Blog 或者使用完整的命名空间生成 php think make:controller app\index\controller\Blog 然后你只需要为资源控制器注册一个资源路
函数原型 #include <sys/types.h> #include <sys/wait.h> pid_t wait(int *status); 返回值 -1 错误 其他 被终止的子进程的id 错误类型 错误时,系统记录的错误代码errno,有两种: ECHILD 没有子进程 EINTER 收到中断信号signal,立即返回 检测退出状态的宏 宏 缩写含义 描述 WIFEXITED wait
exec函数族的作用是让fork出的子进程能够执行与父进程不同的代码段,实现不同的功能。 exec由6个函数组成 int execl(const char *path,const char *arg,...); int execlp(const char *file,const char *arg,...); int execle(const char *path,const char *arg,
函数原型 #include <sys/types.h> #include <unistd.h> pid_t vfork(void); 描述 同样是创建子进程,其效率比fork()要快。两者区别有: vfork()不会创建并复制父进程的地址空间,而是和父进程共享 vfork()会阻塞父进程,只运行子进程运行 当子进程调用exec()或_exit()时,内核返回地址空间给父进程并唤醒它
从父进程派生出子进程,子进程完全拷贝父进程的stack,data,heap segment。 两者并不共享地址空间,所以的变量是独立的,一方修改,另一方不会变化。 函数原型 #include <unistd.h> pid_t fork(void); 特点 一次调用,两次返回
Ryu是日本NTT公司推出的SDN控制器框架,它基于Python开发,模块清晰,可扩展性好,逐步取代了早期的NOX和POX。 Ryu支持OpenFlow 1.0到1.5版本,也支持Netconf,OF-CONIFG等其他南向协议 Ryu可以作为OpenStack的插件,见Dragonflow Ryu提供了丰富的组件,便于开发者构建SDN应用 示例 Ryu的安装非常简单,直接用pip就可以安装 pi
Floodlight是BigSwitch在Beacon基础上开发的SDN控制器,它基于Java开发,具有良好的架构和性能,也是早期最流行的SDN控制器之一。 Floodlight的架构可以分为控制层和应用层,应用层通过北向API与控制层通信;控制层则通过南向接口控制数据平面。 Floodlight模块结果如下所示: 由于Floodlight更新迭代速度较慢,特别是OpenDaylight诞生以后,
ONOS是一个开源SDN网络操作系统,主要面向服务提供商和企业骨干网。ONOS的设计宗旨是满足网络需求实现可靠性强,性能好,灵活度高等特性。此外,ONOS的北向接口抽象层和API使得应用开发变得更加简单,而通过南向接口抽象层和接口则可以管控OpenFlow或者传统设备。ONOS集聚了知名的服务提供商(AT&T、NTT通信),高标准的网络供应商(Ciena、Ericsson、Fujitsu、Huaw
OpenDaylight是Linux基金会管理的开源SDN控制器,依托强大的社区支持和功能特性,已成为最受瞩目的开源SDN控制器。 OpenDaylight(ODL)高度模块化、可扩展、可升级、支持多协议。北向接口可扩展性强,REST型API用于松耦合应用,OSGI型用于紧耦合应用。引入SAL屏蔽不同协议的差异性。南向支持多种协议插件,如OpenFlow 1.0、 OpenFlow 1.3、OVS
2. 线程控制 2.1. 创建线程 #include <pthread.h> int pthread_create(pthread_t *restrict thread, const pthread_attr_t *restrict attr, void *(*start_routine)(void*), void *restrict arg); 返回值:成功返回0,失败返回错误号。以前学过
2. 作业控制 2.1. Session与进程组 在第 1 节 “信号的基本概念”中我说过“Shell可以同时运行一个前台进程和任意多个后台进程”其实是不全面的,现在我们来研究更复杂的情况。事实上,Shell分前后台来控制的不是进程而是作业(Job)或者进程组(Process Group)。一个前台作业可以由多个进程组成,一个后台作业也可以由多个进程组成,Shell可以同时运行一个前台作业和任意多