Git hooks 生成目录
可以参考之前更改commit
的逻辑。不过要注意,如果设置了全局 hooks , 项目内的就无法使用了
1 |
|
可以参考之前更改commit
的逻辑。不过要注意,如果设置了全局 hooks , 项目内的就无法使用了
1 | #!/bin/sh |
之前一直用go写的多消费者,因为go存在channel,所以可以用有缓channel模拟队列进行消费和退出,但是java不存在channel,所以要是用一些内存queue,结果由于退出条件的判断不一样,导致java的代码进入空等待。一只没有释放资源。
go 原始代码如下 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
func main(){
type Item struct {
value string
}
queue:= make(chan Item,100)
task := StartTogether(func(){
for item:= range queue{
fmt.Println(item)
}
},10)
for i:=1;i<=10000;i++{
queue<-Item{
value: fmt.Sprintf("%v",i),
}
}
close(queue)
task.Wait()
}
func StartTogether(job func(), counter int) *sync.WaitGroup {
var wg sync.WaitGroup
for i := 1; i <= counter; i++ {
wg.Add(1)
go func() {
defer wg.Done()
job()
}()
}
return &wg
}
java queue with thread
介绍 cangjie
当前安装前置操作: 微信公众号搜索: 仓颉编程语言
, 回复 SDK。 注册gitcode账号。当前仓颉 SDK 相关自料在gitcode上。目前只有 SDK ,还没有源码放出。
安装 - sdk - 安装 单文件运行 一个定时获取每日一句。
基于 traefik provider 的多环境网关
1 | ps -ef | grep 'java' |
1 | private ThreadPoolExecutor readExecutor = new ThreadPoolExecutor(2, 2, 10, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(100), new ThreadPoolExecutor.CallerRunsPolicy()); |
1 |
|