work

python之路——线程

狂风中的少年 提交于 2019-11-29 21:33:11
简介 操作系统线程理论 线程概念的引入背景 线程的特点 进程和线程的关系 使用线程的实际场景 用户级线程和内核级线程(了解) 线程和python 理论知识 线程的创建Threading.Thread类 锁 队列 Python标准模块--concurrent.futures 回到顶部 操作系统线程理论 回到顶部 线程概念的引入背景 进程   之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下,可以实现并发地执行。这是这样的设计,大大提高了CPU的利用率。进程的出现让每个用户感觉到自己独享CPU,因此,进程就是为了在CPU上实现多道编程而提出的。 有了进程为什么要有线程   进程有很多优点,它提供了多道编程,让我们感觉我们每个人都拥有自己的CPU和其他资源,可以提高计算机的利用率。很多人就不理解了,既然进程这么优秀,为什么还要线程呢?其实,仔细观察就会发现进程还是有很多缺陷的,主要体现在两点上: 进程只能在一个时间干一件事,如果想同时干两件事或多件事,进程就无能为力了。 进程在执行的过程中如果阻塞,例如等待输入

svn报错:“Previous operation has not finished; run 'cleanup' if it was interrupted“ 的解决方法

社会主义新天地 提交于 2019-11-29 19:00:50
svn报错:“Previous operation has not finished; run ‘cleanup’ if it was interrupted“ 1、执行clean up 2、执行clean up后如果依然报错,按以下方法解决 本地.svn\wc.db数据库文件里面存储了svn的operation,表名是work_queue。 看看work_queue表中放了些什么,再做处理 1. 将sqlite.exe文件放在.svn文件夹下,我的是在E:\dell\ideaProject\ums\ .svn下 (sqlite.exe下载地址: https://pan.baidu.com/s/1kynOrCWXL63NemFuMgn9dQ) 2. 运行cmd,进入到E:\dell\ideaProject\ums.svn文件夹下,执行sqlite3 wc.db,打开数据库 3. 执行.table ,可以看到里面有一个WORK_QUEUE表 4. 执行查询语句 执行 select * from work_queue; 看到有1条记录。即为堵塞的命令。 执行 delete from work_queue; 把队列清空。 再次执行 select * from work_queue; 确认一下是否已经清空队列。发现已经没有记录显示,说明已经清空了。 最后再 clean up 试一下

go 多线程并发 queue demo

柔情痞子 提交于 2019-11-29 18:52:15
原文链接: Writing worker queues, in Go 1.work.go [root@wangjq queue]# cat work.go package main import "time" type WorkRequest struct { Name string Delay time.Duration } 2.collector.go [root@wangjq queue]# cat collector.go package main import ( "fmt" "net/http" "time" ) // A buffered channel that we can send work requests on. var WorkQueue = make(chan WorkRequest, 100) func Collector(w http.ResponseWriter, r *http.Request) { // Make sure we can only be called with an HTTP POST request. if r.Method != "POST" { w.Header().Set("Allow", "POST") w.WriteHeader(http.StatusMethodNotAllowed) return } //

Linux执行后台work相关

走远了吗. 提交于 2019-11-29 16:27:31
Linux的后台运行、关闭、查看后台任务 & ctrl+z jobs fg bg kill nohup setsid disown screen 1.& 加在命令的最后,可以把命令放到后台执行: watch -n 10 sh test.sh #每10s后台执行一次test.sh脚本 2.ctrl+z 可以将一个在前台运行的命令放到后台,且处于暂停状态 3.jobs 查看当前有所少在后台运行的命令 jobs -l选项可显示所有任务的PID,jobs的状态可以是running、stopped、terminated。 但是如果任务被终止了(kill),shell从当前的shell环境已知的列表中删除任务的进程标识 jobs命令选项 -l 列出进程ID及其他信息 -p 仅列出进程ID -n 仅列出自从上次输出状态变化提示后的发生了状态变化的进程 -r 仅显示运行中的作业 -s 仅显示停止的作业 -x 运行命令及其参数,并用新的命令的进程ID替代所匹配的原有作业的进程组ID 4.fg 将后台中命令调至前台继续运行,如果后台有多个命令,可以用fg %jobnumber(是命令编号,不是进程号)将选中的命令调出 # jobs -l [2] - stopped .... [3] + stopped ... # fg 2 5.bg 将一个后台暂停的命令,变成后台继续运行,如果后台有多个命令

mysql.zip免安装版配置

橙三吉。 提交于 2019-11-29 15:56:58
MYSQL ZIP 免 安装 版配置 1. 下载MySQL 选择自己想要的.本次安装.我使用的是mysql-5.6.17-winx64 地址:http://dev.mysql.com/downloads/mysql/ 2. 解压zip 文件. 在mysql 的根目录下找到 my-default.ini 复制出一个 my.ini 文件, 根据你需要的位置修改 my.ini 文件 a)在[mysqld]下追加 ------- basedir = "d:\\mysql" datadir = "d:\\mysql\\data" character-set-server = utf8 ------- b) 在[client]下追加 ------- default-character-set = utf8 # For advice on how to change settings please see # http: // dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html # *** DO NOT EDIT THIS FILE. It ' s a template which will be copied to the # *** default location during install , and

clang8.0及以上编译rocks问题

回眸只為那壹抹淺笑 提交于 2019-11-29 13:30:03
升级了MacOS 10.15 Beta版,结果编译 CockroachDB 遇到了问题。 [ 0%] Building CXX object CMakeFiles/rocksdb.dir/db/builder.cc.o [ 3%] Building CXX object CMakeFiles/rocksdb.dir/db/column_family.cc.o [ 3%] Building CXX object CMakeFiles/rocksdb.dir/db/compacted_db_impl.cc.o [ 3%] Building CXX object CMakeFiles/rocksdb.dir/db/compaction.cc.o In file included from /usr/ports/databases/cockroach/work/cockroach-v19.1.1/src/github.com/cockroachdb/cockroach/c-deps/rocksdb/db/column_family.cc:24: In file included from /usr/ports/databases/cockroach/work/cockroach-v19.1.1/src/github.com/cockroachdb/cockroach/c-deps

We don't wanna work!

﹥>﹥吖頭↗ 提交于 2019-11-29 13:21:01
We don't wanna work! [JAG Asia 2016] 两个set,一个代表工作的,一个代表不工作的 其实是一个很简单的模拟,但是我竟然排序之前标号。。。。 检查代码的时候要从头开始检查。。 #include <bits/stdc++.h> using namespace std; const int maxn = 1e5+7; struct node { char s[25]; int ti,fen; bool operator<(const node&r)const { if(fen==r.fen) { return ti>r.ti; } return fen>r.fen; } } s[maxn],tmp; set<node>st,stt; set<node>::iterator it; map<string,int>mp; char str[25]; char op[5]; int p; void solve() { if(st.size()>p) { it=st.end(); --it; tmp=*it; cout<<tmp.s<<" is not working now."<<endl; st.erase(tmp); stt.insert(tmp); } else if(st.size()<p) { it=stt.begin(); tmp=*it;

企业模式之Unit Of Work模式

萝らか妹 提交于 2019-11-29 12:43:51
  在开始UnitOfWork模式之前有必要回顾下我们耳熟能详的Data Access Object(DAO)模式,即数据访问对象。DAO是一种简单的模式,我们构建应用的时候经常会使用到它,它的功能就是将DAL元素从应用程序中分离出来,在经典的三层架构中,我们会将数据持久化工作单独分离出来,封装成DAL层。但是,DAO并没有隐藏它面对是一张张数据表,而且通常情况我们会为数据库中的每一张表创建一个DAO类,想必大家对这种方式的极度的不爽了,。 由于DAO模式与数据表是一对一匹配的关系,因此DAO模式很好的配合了Active Record和Transaction Script业务模式,尤其是Table Module。正因为这种与数据表一对一匹配关系,使我对DAO模式深恶痛绝。   Unit Of Work模式,即工作单元,它是一种数据访问模式。它是用来维护一个由已经被业务修改(如增加、删除和更新等)的业务对象组成的列表。它负责协调这些业务对象的持久化工作及并发问题。那它是怎么来维护的一系列业务对象组成的列表持久化工作的呢?通过事务。Unit Of Work模式 会记录所有对象模型修改过的信息,在提交的时候,一次性修改,并把结果同步到数据库。 这个过程通常被封装在事务中。所以在DAL中采用Unit Of Work模式好处就在于能够确保数据的完整性,如果在持有一系列业务对象(同属于一个事务

hbx的毒瘤贪心系列题解

霸气de小男生 提交于 2019-11-29 12:16:33
毒瘤hbx的贪心专题系列题解 A Maximal gcd   题意:现在给定一个正整数 n。你需要找到 k 个严格递增的正整数a1, a2, ..., ak,满足他们的和等于 n 并且他们的最大公因数尽量大。如果不可能请输出 -1。 \(1\leq n,k \leq 10^{10}\)   题解:把 n 的所有因子找出来后,求最大因子 x 满足 \(x* \frac {k* (k+1)}{2}\leq n\) 即可。序列就是 \(1* x,2* x,...,(k-1)* x,n-x* \frac{k* (k-1)}{2}\)    注意判断时会爆long long!   复杂度: \(O(\sqrt n)\) #include<bits/stdc++.h> using namespace std; #define ll long long ll n,k,tmp,tp,sum,fac[5005]; int faccnt; inline bool check(ll x) { return x<=(2*n/k)/(k+1);//!!! } int main() { scanf("%lld%lld",&n,&k); sum=n; if(!check(1)) { puts("-1"); return 0; } for(register ll i=1;i*i<=n;++i) { if(n%i)

Eclipse 没有Server选项,没有Dynamic Web Project的解决办法

半腔热情 提交于 2019-11-29 11:21:50
Eclipse 没有Server选项,没有Dynamic Web Project的解决办法 1. 查看当前Eclipse版本 在 Help -- About Eclipse IDE 中查看当前Eclipse的版本,记住它。 2. 安装扩展包 选择 Help -- Install New Sofewares ,点击 Work with 后面的输入框的小箭头,选择前缀是你当前版本的那一项,然后等待下方出现一堆的选项, 勾选Web, XML, Java EE and OSGi Enterprise Development , 取消勾选底下的Contact all update sites during install to find required software ,否则加载非常慢,接着点击Next,选择I accpet 协议,选择Finish 。 3. 结束 等待下载进度条走完重启 Eclipse 即可,注意会卡在49%特别久,但是是正常现象,它在下文件,后台运行即可。偶尔会弹出是否信任证书的东西,同意即可。 来源: https://www.cnblogs.com/kujisa/p/11516232.html