delegate

每日学习-ansible任务委派与本地操作

北战南征 提交于 2021-01-24 09:02:32
ansible通过使用delegate_to关键字委派任务到指定的机器上运行 使用示例: 1、hosts配置 - name: add host record to DC server shell: 'echo "192.168.10.12 node2" >> /etc/hosts' - name: add host record to all server shell: 'echo "192.168.10.12 node2 " >> /etc/hosts' delegate_to: 192.168.10.100 2、ntp-server配置 ntp-server执行server配置,nep-client执行定时任务同步server。 - name: install ntp shell: yum -y install ntp - name: stop all ntp_install server shell: systemctl stop ntpd && systemctl disable ntpd - name: config ntp server template: src=templates/ntp.conf dest=/etc/ntp.conf run_once: true delegate_to: "{{ntp.ntp_server}}" - name: start ntp

C# 向指定的进程发送消息

可紊 提交于 2021-01-14 08:23:10
public static class ProcessExtensions { // Messages const int WM_KEYDOWN = 0x100 ; const int WM_KEYUP = 0x101 ; const int WM_CHAR = 0x105 ; const int WM_SYSKEYDOWN = 0x104 ; const int WM_SYSKEYUP = 0x105 ; private static class Win32 { [ DllImport("user32.dll", CharSet = CharSet.Auto) ] public static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam); [ return: MarshalAs(UnmanagedType.Bool) ] [ DllImport("user32.dll", SetLastError = true) ] public static extern bool PostMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam); [ return: MarshalAs(UnmanagedType

Thread类(线程)

守給你的承諾、 提交于 2021-01-12 03:03:18
操作系统通过线程对程序的执行进行管理,当操作系统运行一个程序的时候,首先,操作系统将为这个准备运行的程序分配一个进程,以管理这个程序所需要的各种资源。在这些资源之中,会包含一个称为主线程的线程数据结构,用来管理这个程序的执行状态。   在Windows操作系统下,线程的的数据结构包含以下内容:   1、线程的核心对象:主要包含线程当前的寄存器状态, 当操作系统调度这个线程开始运行的时候,寄存器的状态将被加载到CPU中,重新构建线程的执行环境,当线程被调度出来的时候,最后的寄存器状态被重新保存到这里,已备下一次执行的时候使用。   2、线程环境块(Thread Environment Block,TED):是一块用户模式下的内存,包含线程的异常处理链的头部。另外,线程的局部存储数据(Thread Local Storage Data)也存在这里。   3、用户模式的堆栈:用户程序的局部变量和参数传递所使用的堆栈,默认情况下,Windows将会被分配1M的空间用于用户模式堆栈。   4、内核模式堆栈:用于访问操作系统时使用的堆栈。 在抢先式多任务的环境下,在一个特定的时间,CPU将一个线程调度进CPU中执行,这个线程最多将会运行一个时间片的时间长度,当时间片到期之后,操作系统将这个线程调度出CPU,将另外一个线程调度进CPU,我们通常称这种操作为上下文切换。   在每一次的上下文切换时

iOS面试题总结

有些话、适合烂在心里 提交于 2021-01-10 14:08:46
[TOC] 1. 多线程的底层实现? 1. 首先搞清楚什么是线程、什么是多线程 2. Mach是第一个以多线程方式处理任务的系统,因此多线程的底层实现机制是基于Mach的线程 3. 开发中很少用Mach级的线程,因为Mach级的线程没有提供多线程的基本特征,线程之间是独立的 4. 开发中实现多线程的方案 C语言的POSIX接口:#include <pthread.h> OC的NSThread C语言的GCD接口(性能最好,代码更精简) OC的NSOperation和NSOperationQueue(基于GCD) 2. 线程间怎么通信? 1. performSelector:onThread:withObject:waitUntilDone: 2. NSMachPort 3. 网络图片处理问题中怎么解决一个相同的网络地址重复请求的问题? 利用字典(图片地址为key,下载操作为value),具体可以查看SD缓存机制 4. 用NSOpertion和NSOpertionQueue处理A,B,C三个线程,要求执行完A,B后才能执行C,怎么做? NSOperationQueue *queue = [[NSOperationQueue alloc] init]; NSOperation *A = [NSBlockOperation blockOperationWithBlock:^{ NSLog

task.factory.startnew()

こ雲淡風輕ζ 提交于 2021-01-08 19:23:34
1.委托: public delegate int Math(int param1,int param2);定义委托类型 Public int Add(int param1,int param2)//定义同签名函数 { Return param1+param2; } Math math;//声明委托 math=new Math(Add);创建委托对象,与指定进行关联 math(3,4);//调用委托函数 2.官方为了方便 给了Func Action Func<int,int,int> math=delegate(int param1,int param2) { Return param1+param2; } Lambda: Func<int,int,int> math=(param1,param2)=> { Return param1+param2; } Action的使用如同上面Func的使用一样,没有返回值 Public void Add(int param1,int param2) { MessageBox.show((param1+param2).ToString()); } Action<int,int> math=Add; math(3,4); public static HomePageResponse HomePage(HomePageRequest request

探究SynchronizationContext在.Net异步编程中的地位

人走茶凉 提交于 2021-01-07 08:18:30
原文: 探究SynchronizationContext在.Net异步编程中的地位 引言:   多线程编程/异步编程非常复杂,有很多概念和工具需要去学习,贴心的.NET提供 Task线程包装类 和 await/async异步编程语法糖 简化了异步编程方式。 相信很多开发者都看到如下异步编程实践原则: 实践原则 说明 例外情况 ① 避免 Async Void 最好使用 async Task 方法而不是 async void 方法 事件处理程序 ② 始终使用 await 不要混合阻塞式代码和异步代码 控制台 main 方法 ③ 配置上下文 尽可能使用ConfigureAwait(false) 需要上下文的方法   遵守以上冷冰冰的②③条的原则,可保证异步程序按照预期状态正常运作;我们在各大编程论坛常看到违背这2条原则引发的莫民奇妙的死锁问题。   UI 例子: 点击按钮触发了一个远程HTTP请求,用请求的返回值修改UI控件, 以下代码会引发deadlock (类似状态出现在Windows Form、WPF) public static async Task<JObject> GetJsonAsync(Uri uri) { using ( var client = new HttpClient()) { var jsonString = await client

java.c++.c#.c的区别

我的未来我决定 提交于 2021-01-04 07:05:16
C++则一般看作是对C语言的扩展。 Java语言是一种完全的面向对象语言,虽然它的底层(运行时库)是用C语言开发的,可是并不依赖于C。 C#是微软开发的一种编程语言,语法类似Java,几乎就是从Java的翻版。 C/C++的优点在于与底层比较接近,可以控制的粒度更加精细,是开发系统级应用的最佳选择。关于缺点,我想正是源于其优点,因为它们能控制的编程元素粒度精细,所以编程比较困难,烦琐,容易出错。 Java和C#都比较高级,可以看作高级语言的高级语言,优点是开发容易,但运行效率不如更为底层的C/C++。 具体选择使用的时候,可以根据实际的项目需要选择。运行效率要求高的,底层控制要求高的用C/C++,否则可以选择Java或C#;跨平台的要求高的可以用Java。 C/C++稳定,灵活,高效 ——————各种大型应用程序、系统的编写,底层的开发——包括操作系统,内核功能的编写等; JAVA:高效,体积小,可移植性——————硬件驱动的编写,嵌入式程序,手机应用程序,网络小程序等各种需要在可使用资源较少的功能不太复杂的程序; .NET:开发周期短,代码复用率高,安全性好——————————WebSite及web服务编程; C#:开发周期短,对网络和数据访问功能——————————各种和网络有关的Applications; C#、C++和Java C

PHP经典面试题目汇总(上篇)

好久不见. 提交于 2021-01-02 17:02:56
1、双引号和单引号的区别 双引号解释变量,单引号不解释变量 双引号里插入单引号,其中单引号里如果有变量的话,变量解释 双引号的变量名后面必须要有一个非数字、字母、下划线的特殊字符,或者用{}讲变量括起来,否则会将变量名后面的部分当做一个整体,引起语法错误 双引号解释转义字符,单引号不解释转义字符,但是解释'\和\\ 能使单引号字符尽量使用单引号,单引号的效率比双引号要高(因为双引号要先遍历一遍,判断里面有没有变量,然后再进行操作,而单引号则不需要判断) 2、常用的超全局变量(8个) $_GET ----->get传送方式 $_POST ----->post传送方式 $_REQUEST ----->可以接收到get和post两种方式的值 $GLOBALS ----->所有的变量都放在里面 $_FILES ----->上传文件使用 $_SERVER ----->系统环境变量 $_SESSION ----->会话控制的时候会用到 $_COOKIE ----->会话控制的时候会用到 3、HTTP中POST、GET、PUT、DELETE方式的区别 HTTP定义了与服务器交互的不同的方法,最基本的是POST、GET、PUT、DELETE,与其比不可少的URL的全称是资源描述符,我们可以这样理解:url描述了一个网络上资源,而post、get、put、delegate就是对这个资源进行增、删、改

如何用Mybatis分库分表

牧云@^-^@ 提交于 2020-12-31 11:36:58
分库 在分库的时候 有时候为了方便 一些表需要存放所有库的信息,称为全局库。如:用户表存放所有的用户。 此时分库的思路 数据库分为全局库和业务库,其中业务库又分为N多个库,全局库只放个别表方便开发。 这个时候 就需要一个全局DAO,此时我们的Mybatis就需要支持两个DAO 两个DAO(bizDao和globalDao)就需要有两个sqlSessionFactory,bizSqlSessionFactory和globalSqlSessionFactory和两个事物管理器transactionManager < bean id ="bizDao" class ="com.xxx.dao.BizDao" > < property name ="sqlSessionFactory" ref ="bizSqlSessionFactory" /> </ bean > < bean id ="globalDao" class ="com.xxx.dao.GlobalDao" > < property name ="sqlSessionFactory" ref ="globalSqlSessionFactory" /> </ bean > < bean id ="bizSqlSessionFactory" parent ="sqlSessionFactoryDefault" class =

Spring IOC源码解析

一个人想着一个人 提交于 2020-12-31 10:07:52
Spring的核心是IoC容器和AOP,它们是Spring架构体系中的核心基础。平常使用通过简单配置即可,没有深究其底层实现,因而常常不知所以然,殊不知Spring已经帮助我们完成了太多事情。因此有必要对其实现进行学习,加深对其的理解和应用。 IoC(Inverse of Control):控制反转,将对象的创建权利交由Spring来管理。 继承体系 IoC容器的实现又依赖于BeanFactory和ApplicationContext,ApplicationContext继承BeanFactory并添加了一系列高级功能。先来看看主要的接口继承结构: ApplicationContext的继承体系: IoC容器的初始化过程 容器创建和Bean加载解析及注册 下面以最常用的 ClassPathXmlApplicationContext 为例来分析初始化过程,首先由构造方法启动初始化过程。 public class ClassPathXmlApplicationContext extends AbstractXmlApplicationContext { @Nullable private Resource[] configResources; /** * Create a new ClassPathXmlApplicationContext for bean-style