event

python线程事件Event(30)

╄→гoц情女王★ 提交于 2019-12-05 19:41:10
在python项目开发中,线程thread使用是比较常见的,在前面的文章中我们介绍了 python线程的创建 以及 线程互斥锁 ,今天还要额外介绍一个与线程相关的内容 – 事件Event。 一.python事件Event相关函数介绍 set() — 全局内置标志Flag,将标志Flag 设置为 True,通知在等待状态(wait)的线程恢复运行; isSet() — 获取标志Flag当前状态,返回True 或者 False; wait() — 一旦调用,线程将会处于阻塞状态,直到等待其他线程调用set()函数恢复运行; clear() — 将标志设置为False; 二.python事件Event原理 事件event中有一个全局内置标志Flag,值为 True 或者False。使用wait()函数的线程会处于阻塞状态,此时Flag指为False,直到有其他线程调用set()函数让全局标志Flag置为True,其阻塞的线程立刻恢复运行,还可以用isSet()函数检查当前的Flag状态. 三.python事件Event使用 假如有这样一个场景:有10个单身狗,对面100米有10个美女,同时起跑,一人一个,自由选择,先到先得….. # !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:何以解忧 @Blog(个人博客地址):

线程queue

只愿长相守 提交于 2019-12-05 17:24:20
队列 import queue q = queue.Queue(3) q.put(1) q.put(2) q.put(3) print(q.get()) print(q.get()) print(q.get()) """ 1 2 3 """ 栈 t = queue.LifoQueue(4) t.put(1) t.put(2) t.put(3) t.put(4) print(t.get()) print(t.get()) print(t.get()) print(t.get()) """ 4 3 2 1 """ 优先级队列 p = queue.PriorityQueue(4) p.put((5,"oifjanior")) p.put((-2,"hshts")) p.put((0,"shtr")) p.put((3,"hstrhs")) print(p.get()) print(p.get()) print(p.get()) print(p.get()) """ (-2,"hshts") (0,"shtr") (3,"hstrhs") (5,"oifjanior") """ 事件event ​ 如果程序中的其他线程需要通过判断某个线程的状态来确定自己下一步的操作 版本一 from threading import current_thread, Thread import time

10046 trace

╄→гoц情女王★ 提交于 2019-12-05 17:06:22
收集10046 trace Event 10046是为Oracle session收集扩展的sql_trace信息的标准方法。 关于这个event的详细描述请参见以下文档: Note 21154.1 EVENT: 10046 "enable SQL statement tracing (including binds/waits)" 通常为了诊断SQL调优类问题,我们需要记录下这些语句在执行过程中产生的等待以及bind variables(绑定变量)的信息。 这些信息可以通过级别为12的10046 trace获得。下面的例子列举了在各种场景下,如何设定10046事件。 Trace文件的位置 在Session级打开trace 跟踪一个已经开始的进程 实例层的跟踪 初始化参数设置 通过logon trigger设置跟踪 用SQLT收集trace 用DBMS_MONITOR进行跟踪 其它特定场景下打开跟踪的方法 Trace文件解析 Trace文件的位置 11g R1以上: 从11gR1开始,Oracle引入了新的诊断结构,以参数DIAGNOSTIC_DEST控制存放trace文件与core文件的路径。 可以用以下命令,获取DIAGNOSTIC_DEST的位置: SQL> show parameter diagnostic_dest 11gR1以前: 如果是用户进程,10046

Zookeeper的Watcher方法

徘徊边缘 提交于 2019-12-05 16:53:26
Watcher接口 在ZooKeeper中,接口类Watcher用于表示一个标准的事件处理器,其定义了事件通知相关的逻辑,包含KeeperState和EventType两个枚举类,分别代表了通知状态和事件类型,同时定义了事件的回调方法:process(WatchedEvent event)。 Watcher事件 同一个事件类型在不同的通知状态中代表的含义有所不同,下表列举了常见的通知状态和事件类型 回调方法 process() process方法是Watcher接口中的一个回调方法,当ZooKeeper向客户端发送一个Watcher事件通知时,客户端就会对相应的process方法进行回调,从而实现对事件的处理。process方法的定义如下: abstract public void process(WatchedEvent event); 这个回调方法的定义非常简单,我们重点看下方法的参数定义:WatchedEvent。 WatchedEvent包含了每一个事件的三个基本属性:通知状态(keeperState),事件类型(EventType)和节点路径(path),其数据结构如图7-5所示。ZooKeeper使用WatchedEvent对象来封装服务端事件并传递给Watcher,从而方便回调方法process对服务端事件进行处理。 提到WatchedEvent

小程序的网路请求赋值

不问归期 提交于 2019-12-05 14:49:17
var postData; Page ({ data: { name: "1" , postlist: [] }, onLoad: function (options) { var _this= this ; wx.request({ url: 'http://localhost:8743/home/weixin' , data: { x: '' , y: '' }, header: { 'content-type' : 'application/json' }, success(res) { postData = res.data; console.log( "postData" ); console.log(postData); _this.setData({ postlist: postData, name: "2" }) console.log( "data" ); console.log(_this.data); } }) }, onPostTap: function (event) { var postId = event.currentTarget.dataset.postid; wx:wx.navigateTo({ url: "post-detail/post-detail?id=" + postId }) }, onSwiperTap(event) { var

js基本知识比较系列三:事件

随声附和 提交于 2019-12-05 14:44:00
javascript原生事件 属性 当以下情况发生时,出现此事件 FF N IE onabort 图像加载被中断 1 3 4 onblur 元素失去焦点 1 2 3 onchange 用户改变域的内容 1 2 3 onclick 鼠标点击某个对象 1 2 3 ondblclick 鼠标双击某个对象 1 4 4 onerror 当加载文档或图像时发生某个错误 1 3 4 onfocus 元素获得焦点 1 2 3 onkeydown 某个键盘的键被按下 1 4 3 onkeypress 某个键盘的键被按下或按住 1 4 3 onkeyup 某个键盘的键被松开 1 4 3 onload 某个页面或图像被完成加载 1 2 3 onmousedown 某个鼠标按键被按下 1 4 4 onmousemove 鼠标被移动 1 6 3 onmouseout 鼠标从某元素移开 1 4 4 onmouseover 鼠标被移到某元素之上 1 2 3 onmouseup 某个鼠标按键被松开 1 4 4 onreset 重置按钮被点击 1 3 4 onresize 窗口或框架被调整尺寸 1 4 4 onselect 文本被选定 1 2 3 onsubmit 提交按钮被点击 1 2 3 onunload 用户退出页面 1 2 3 所以通用的方法是: var e=e||event; var charCode=e

nodeJs的基础知识(一)

浪尽此生 提交于 2019-12-05 13:54:35
nodeJS的REPL(read eval print loop 交互式解释器):表示一个电脑的环境,node自带了交互式解释器,可以执行以下任务: 1.读取: 读取用户输入,解析输入了js数据结构并存储在内存中 2.执行: 执行输入的数据结构 3.打印 :输出结果 4.循环: 循环1-3直到按下ctrl-c (node中的解释器可以很好的调试js) REPL的使用: 1.使用变量: 变量声明var关键字,若没有var关键字会直接打印出来,使用var关键字的变量可以使用console.log()输出 2.多行表达式: node REPL支持输入多行表达式(例如do while循环) 3.下划线(_)变量: 可使用下划线获取表达式的运算结果 nodeJS回调函数:nodeJS异步编程的直接结果就是回调,异步编程依托于回调来实现,但是不能说使用了回调就是异步了 var fs = require("fs"); fs.readFile('input.txt',function(err,data){ if(err){ console.error(err); } console.log(data.toString()); }) nodeJS事件循环 1.node是单进程应用程序,但是通过事件和回调支持并发 2.node的每一个api都是异步的,并作为一个独立线程运行,使用异步函数调用并处理并发

动手造轮子:实现简单的 EventQueue

泄露秘密 提交于 2019-12-05 13:37:42
摘自: https://www.cnblogs.com/weihanli/p/implement-event-queue.html 动手造轮子:实现简单的 EventQueue 动手造轮子:实现简单的 EventQueue Intro # 最近项目里有遇到一些并发的问题,想实现一个队列来将并发的请求一个一个串行处理,可以理解为使用消息队列处理并发问题,之前实现过一个简单的 EventBus ,于是想在 EventBus 的基础上改造一下,加一个队列,改造成类似消息队列的处理模式。消息的处理(Consumer)直接使用 .netcore 里的 IHostedService 来实现了一个简单的后台任务处理。 初步设计 # Event 抽象的事件 EventHandler 处理 Event 的方法 EventStore 保存订阅 Event 的 EventHandler EventQueue 保存 Event 的队列 EventPublisher 发布 Event EventConsumer 处理 Event 队列里的 Event EventSubscriptionManager 管理订阅 Event 的 EventHandler 实现代码 # EventBase 定义了基本事件信息,事件发生时间以及事件的id: Copy public abstract class EventBase

mysql定时任务(event事件)

痴心易碎 提交于 2019-12-05 11:59:23
1.event事件 事件(event)是MySQL在相应的时刻调用的过程式数据库对象。一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器” 事件和触发器类似,都是在某些事情发生的时候启动。当数据库上启动一条语句的时候,触发器就启动了,而事件是根据调度事件来启动的,事件也称为临时性触发器 事件取代了原先只能由操作系统的计划任务来执行的工作,而且MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精确到每分钟执行一次 2.创建事件 事件由两个主要部分组成,第一部分是事件调度(event schedule),表示事件何时启动以及按什么频率启动,第二部分是事件动作(event action ),这是事件启动时执行的代码,事件的动作包含一条SQL语句,它可能是一个简单地insert或者update语句,也可以使一个存储过程或者 benin...end语句块,这两种情况允许我们执行多条SQL sql语句创建事件: 每隔10秒往数据库插入一条数据 navicat创建事件: 右键新建事件: 编写需要执行的sql语句 设置计划任务 一个事件可以是活动(打开)的或停止(关闭)的,活动意味着事件调度器检查事件动作是否必须调用,停止意味着事件的声明存储在目录中

第十三周课程总结

萝らか妹 提交于 2019-12-05 09:44:53
             第十三周课程总结 本周主要学习了 键盘事件及监听处理、单选按钮、菜单组件 以及 事件和监听器 。 一.监听适配器: 通过 WindowAdapter 实现监听    package dishisanzhou; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; public class MyWindowListener implements WindowListener { public void windowOpened(WindowEvent e) { System.out.println("窗口打开"); } public void windowClosing(WindowEvent e) { System.out.println("窗口关闭中"); System.exit(1); } public void windowClosed(WindowEvent e) { System.out.println("窗口已关闭"); } public void windowIconified(WindowEvent e) { System.out.println("窗口最小化"); } public void windowDeiconified