


CountDownLatch是一个同步工具类,它通过一个计数器来实现的,初始值为线程的数量。每当一个线程完成了自己的任务,计数器的值就相应得减1。当计数器到达0时,表示所有的线程都已执行完毕,然后在等待的线程就可以恢复执行任务。
CountDownLatch(int count):count为计数器的初始值(一般需要多少个线程执行,count就设为几)。
countDown(): 每调用一次计数器值-1,直到count被减为0,代表所有线程全部执行完毕。
getCount():获取当前计数器的值。
await(): 等待计数器变为0,即等待所有异步线程执行完毕。
boolean await(long timeout, TimeUnit unit): 此方法与await()区别:
实现在无多条件查询的接口下完成多条件查询,即批处理调用接口查询,为了保证获取的性能问题,此处需要使用此技术。
前提是该接口支持该数量级的qps。
List<String> ids = new ArrayList<>(Arrays.asList("陈", "王", "李"));
List<String> nameList = Collections.synchronizedList(new ArrayList<>());
CountDownLatch countDownLatch = new CountDownLatch(ids.size());
for (String s : ids) {
ThreadPoolUtil.execute(() -> {
// 此处方法为调用外部接口,根据姓氏条件模糊查询用户列表,获取包含此姓氏的所有名字列表(假设没有多条件查询下)
List<String> exhibitionDetailsSplit = SignUtil.advancedQueryMultipleConditions(s);
nameList.addAll(exhibitionDetailsSplit);
countDownLatch.countDown();
});
}
try {
countDownLatch.await();
} catch (InterruptedException e) {
log.error("exception: {}", e.getMessage());
}
ThreadPoolUtil工具类
@Slf4j
public class ThreadPoolUtil {
private static ExecutorService executor = Executors.newCachedThreadPool();
public static void execute(Runnable task) {
try {
executor.execute(task);
} catch (Exception e) {
log.error("线程池异常:{}", e.getMessage());
}
}
public static void shutdown() {
executor.shutdown();
}
}
西安交通大学开源了人工智能SadTaker模型,通过从音频中学习生成3D运动系数,使用全新的3D面部渲染器来生成头部运动,可以实现图片+音频就能生成高质量的视频。内含多个踩坑的解决办法,值得玩一玩。
可以根据一张图片、一段音频,合成面部说这段语音的视频。图片需要真人或者接近真人。目前项目已经支持stable diffusion webui,可以SD出图后,结合一段音频合成面部说话的视频(抖音常见的数字人)
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
遇到个线上问题,调用三方接口报错:“请求需要使用token认证;请检查请求Header中是否填了正确的Authorization”。
该问题很明显是token填写格式问题,由于是商店应用本地调试需要更改很多配置,所以线上调试会更快。
线上服务器执行
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar
之后会列出服务器正在运行的jar程序
[INFO] Found existing java process, please choose one and input the serial number of the process, eg : 1. Then hit ENTER.
* [1]: 22023 xxx.jar
[2]: 18084 xxx2.jar
[3]: 21167 org.apache.catalina.startup.Bootstrap
假如报错的为程序1,输入1后回车
此时为终端输入模式,输入如下命令定位该问题,之后将会解释下命令内容和给出命令文档:
watch com.rawchen.tools.PooledHttpUtils getData -x 2 -b -s -n 5
此时终端为监听模式,只要再次触发com.rawchen.tools.PooledHttpUtils
包下的getData方法,将会准备输出该方法中的入参,出参,抛出异常,类中字段值。至多5条。
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 1) cost in 82 ms, listenerId: 4
▌
最后得到的数据:
method=com.rawchen.tools.PooledHttpUtils.getData location=AtExit
ts=2024-03-22 11:21:05; [cost=6.452475626433412E10ms] result=@ArrayList[
@Object[][
@String[621d8594dc],
@HttpConfig[headers=[Authorization: Beareru-eeharKx8hpbaLPojKdKJcak3FcK8F5l9W014Kw20j], cookies=null],
null,
],
@ApiController[
log=@Logger[Logger[com.rawchen.alipan.controller.ApiController]],
parentFileId=@String[root],
apiUrl=@String[https://api.baidu.com],
apiUrlV3=@String[https://api.baidu.com/v3],
oauthTokenUrl=@String[https://baidu.com/token],
openApiUrl=@String[https://baidu.com],
refererURL=@String[https://baidu.com],
passwordFileName=@String[pwd],
appId=@String[5dde4e1bdf9e4966b387ba58f4b],
],
@ArrayList[
@PanFile[PanFile{fileId='621d85af96156951062f4cb4ad0b06fb5', type='folder', name='测试文件夹1', parentFileId='621d8594dc9e9ad3b63e47d9b599edbb04', createdAt='2022-03-01T02:32:15.410Z', fileExtension='null', size=0, url='null', previewUrl='null', encrypted=false}],
@PanFile[PanFile{fileId='621d85b6c6f56dac771645f2b413b39ae', type='folder', name='测试文件夹2', parentFileId='621d8594dc9e9ad3b63e47d9b599edbb04', createdAt='2022-03-01T02:32:22.717Z', fileExtension='null', size=0, url='null', previewUrl='null', encrypted=false}],
],
]
由此便可知问题了,可以看出请求头出现Authorization为Bearer后加token,拼接时出现少空格情况。因为我们统一在common层做的处理,此时才知道是引入的common为旧版依赖,所以代码有缺陷导致的。
其实这只是Arthas最基础的线上方法观测功能,还有很多例如方法监测、线上调试、JVM运行状态、线程堆栈、反编译、解决冲突等。可以查看Arthas官方文档。
https://github.com/alibaba/arthas/issues?q=label%3Auser-case
attach连接JVM、实现应用代码隔离类隔离、支持OGNL
https://blog.csdn.net/lym152898/article/details/131345547
AI生成摘要:2023年匆匆忙忙过去,2024年已经过去一个月。作者回顾了自己在过去一年半中所经历的压力、情绪、热爱和自由,以数码照片的方式记录下这些经历。尽管日常工作重复,但作者探索了户外活动、阅读、摄影、运动等新的兴趣爱好。在思考过去和未来之际,作者意识到生活中的细节和热爱是写作的灵感来源。展望2024年,作者希望生活丰富多彩有条有理,并制定了周更博客、徒步旅行、学习新技术和影视后期制作的计划。
匆匆忙忙的2023之后才发现2024已经过去1个月了。博客尘封了多久我也记太清楚。才回过头去看已是大半年了,提起笔,不对敲着键盘,才发现再也找不到在大学时候研究学习各种好玩的技术,参加各种好玩的比赛,并记录下这些好玩的事情,结识了一个又一个朋友...踟躇很久才决定了,总结一下202207-202312吧,也算是毕业工作后一年半首次总结。
在这一年半中有过压力,有过EMO,有过每个人都经历过的怅惘,也有过把山海拍遍的热爱和自由。但不管怎样,很多难以忘记的这些星星点点,我都将它以数码照片方式存印。正是这些关于挚友、阅读、运动、旅行、关于失而复得喜悦,关于冥思苦想的明悟,纵横交织。看了本书,名字是《云边有个小卖部》,有句是:货架上满载着岁月和夕阳。我们都是被行程选择的赶路人,面对湖光山色,还是值得贪恋几许的吧。也许我们终点一致,也肯定一致,但是我们何时到达,会遇到什么谁也不知道。
我感觉写总结应该还挺有意义的,它不像是工作总结一样毫无感情。我再想为什么想写这个话题呢,我从业的是互联网软件开发,对于经常爱逛科技博文的应该或多或少知道阮一峰博客。得空就会看看有什么新科技,偶然间看到一个仓库:这个仓库收集国内网友的2023年个人总结 ,从其他博主文章中也能收获很多,互联网上每个人都是一个小点点,我们想逃离中心化的大平台,博客的意义,就是这其中的一座座灯塔吧,照亮每一个逃离的旅行者。
但如果要说 2023 年有哪些变化,我第一反应是开始喜欢户外,其它的是日复一日的工作,然后摸鱼,甚至于这篇文章都是我在春节放假前最后一个工作日摸鱼时写的,感觉摸鱼对于写作效率的提升是有很大帮助的。
以及:
还是会在某个深夜开始 emo,然后睡不着觉,胡思乱想。
还是会在漫无目的的刷完手机后开始假装自责
还是会在每天习惯背着笔记本电脑回家让它躺着
但真就这样么?我尝试在回忆的原野上捕捉一只只断线的风筝,偶尔还是能看到一些被风吹断线后,飘散在地上的零散纸片
开始用Kindle阅读器看点喜欢的书籍了。
喜欢上了摄影航拍,在海边公园悠闲的听歌跑步
每周一次的羽毛球,让身体畅快淋漓
每周一山一海,逃离城市里的生活
茫然惊醒,原来 24 年已经过去了一个月,我好像一直在虚度光阴,回过头来,晚霞依旧笼罩在这座城市,我也逐渐意识到,只有真正热爱生活,去挖掘,体会生活中的那些细节,写出来的文字自然而然就会有真情实感。我也时常会去想,如果我现在60岁,如果我23岁那年毕业后出来做了旅行博主...如果我23岁那年毕业后出来开了咖啡店...如果我23岁那年毕业后出来...
但是没有如果,我只能尽量追寻我的方向,现实与理想永远是一个鸿沟。
2024我的愿望是:让生活多姿多彩有条有理
2024我的计划是:周更、开始重装徒步、学习互联网新技术、学习影视后期与航拍技巧
20230714
音质非常Nice,低音很有感觉,颜值高续航给力。
20230629
比较新的显卡,2023年5月18日发布。性能挺强,属于中端显卡,比3060TI显卡提升10%左右。支持DLSS3。
3100多入的。
20230512
大光圈下也很锐,几乎无紫边和畸变。适用于我的半画幅相机。等效85mm了,适用拍摄半身人像。
20230421
操作手感不错。
20230419
磁吸式充电,拆卸式表带设计很方便。屏幕比前一代大了很多。
给红米K40 AirPods2换新电池
感觉设备满血复活。
深圳漂亮的海边很多,这里也应该被人记住。溪谷、山野、丛林、草甸、沙滩、礁石、大海满足你对山和海的所有憧憬。
一条鲜为人知的登山看海路线,一条风景超级无敌美丽的山海径,延绵的七娘山山脉超五星的无敌海景。漫步高山草甸行摄山海间眺望最美风景。沿着山脊阶梯往下有5个观景台,每个观景台景色各不相同。
上次去的时候留有遗憾,山上都是雾。再次去就能感受景色真的太美啦。
徒步的下半场是杨梅坑,《美人鱼》拍摄地位于杨梅坑鹿嘴山庄,电影取景的“人鱼洞”是必打卡的地方,陡峭的悬崖加上激流的海浪。真的有几分巴厘岛佩尼达的感觉。在这里,登高俯瞰参差的海岸,超级无敌干净的海水岸边被海浪冲刷的岩石。
杨梅坑-鹿嘴山庄-鹿雁径-鹿嘴山庄-杨梅坑
徒步路程约8公里,爬升600米上山,难度★★,风景:★★★★★。需要准备徒步鞋、速干衣裤、双肩包、防晒用品、防晒帽、防晒衣、雨伞/雨衣、零食等。
除了中环尖沙咀、维多利亚港,除了城市商场你还知道哪些香港不一样的风景呢?
香港麦理浩劲,听说是全球20大最美徒步地,也只有到了才知道。
咸水湾露营,水确实咸,沙滩野猪出没是真的。
前两段难度不高,风景绝美。
莲塘口岸-西贡-咸田湾-塔门岛
徒步路程约15公里,爬升300米,难度★★,风景:★★★★★。需要准备徒步鞋、速干衣裤、双肩包、防晒用品、防晒帽、防晒衣、雨伞/雨衣、零食等。
如果想去一定要在天气好的时候。期待下一次出发。
终于来赴香港的约了,下次坐叮叮车去海边看日落。
办理港澳通行证就不用说了,一般在户籍所在地办理,在深圳的话有居住证也可以网上预约办理。
进关口前买张八达通,那边几乎地铁公交小店基本通用。可以兑换几百港币。需提前开启漫游,买个境外流量包,移动好像28一天。香港最方便的交通工具还是地铁,其它有大巴、叮叮车、地铁、天星小轮、的士这几种。
旺角 尖沙咀 星光大道 铜锣湾 维多利亚港 中环...
摄影:尼康Z30+适马56F1.4
深圳漂亮的海边很多,这里也应该被人记住。溪谷、山野、丛林、草甸、沙滩、礁石、大海满足你对山和海的所有憧憬。
一条鲜为人知的登山看海路线,一条风景超级无敌美丽的山海径,延绵的七娘山山脉超五星的无敌海景。漫步高山草甸行摄山海间眺望最美风景。沿着山脊阶梯往下有5个观景台,每个观景台景色各不相同。
徒步的下半场是杨梅坑,《美人鱼》拍摄地位于杨梅坑鹿嘴山庄,电影取景的“人鱼洞”是必打卡的地方,陡峭的悬崖加上激流的海浪。真的有几分巴厘岛佩尼达的感觉。在这里,登高俯瞰参差的海岸,超级无敌干净的海水岸边被海浪冲刷的岩石。
杨梅坑-鹿嘴山庄-鹿雁径-鹿嘴山庄-杨梅坑
徒步路程约8公里,爬升600米上山,难度★★,风景:★★★★★。需要准备徒步鞋、速干衣裤、双肩包、防晒用品、防晒帽、防晒衣、雨伞/雨衣、零食等。
距离Adobe软件公司首次将图像编辑及数字绘画软件Photoshop推出到大众面前已经过去35年,最近该公司又再次书写了属于Photoshop的历史新篇章。
最近,Adobe 宣布 Photoshop(Beta)迎来更新,新增「创意填充(Generative Fill)」
功能,生成式AI绘图由Adobe Firefly提供支持,Adobe的创意生成AI模型系列。
这个版本让用户可以以非破坏性的方式进行图像组合和生成。这一创新功能将为用户带来更加灵活和创造性的体验,让您的创作变得更加自由和多样化。
生成计算都是云端处理
,不用考虑本地机器图形处理器性能,Photoshop(Beta)测试版目前不太稳定,如果出现联网问题,无法使用AI功能,需要开启梯子。目前仅支持Windows11系统,Mac还要等等。该版本是一个令人兴奋的发展,它有可能改变我们使用图像编辑软件的方式。然而,它是否能满足所有用户的需求,还需要进一步的测试和反馈。
原图
三种生成填充效果选择
生成taxi出租车
去除出租车
1.下载Adobe Creative Cloud安装,会提示登录,选择创建账户,用Gmail邮箱注册(其他邮箱账号都不行!!!),国家/地区选美国。
https://www.adobe.com/cn/lead/creativecloud/business.html
2.账号创建完成,首次登录会有Adobe服务弹窗,一定要取消勾选AGS,之后等待安装。
3.安装后进入主页,点击左侧导航进入Beta应用程序,找到PhotoShop(Beta)版本,点击试用安装
4.安装完成后点击菜单文件里的退出Creative Cloud,打开AdobeGenP激活工具,点击Search,搜索本机Adobe未激活产品
下载: AdobeGenP.zip
5.搜索完成,点击Parch,打上激活补丁即可去除7天试用限制
“You want to wake up in the morning and think the future is going to be great - and that's what being a spacefaring civilization is all about. It's about believing in the future and thinking that the future will be better than the past. And I can't think of anything more exciting than going out there and being among the stars.”
“您想在早晨醒来,并认为未来将是美好的-这就是航天文明的全部意义所在。这是关于相信未来,并认为未来会比过去更好。我想不出要去那里和在星空之中更令人兴奋。”
— SPACEX的ELON MUSK
Starship 于 2023 年 4 月 20 日首次使用其超重型助推器从德克萨斯发射升空。虽然这艘近 400 英尺高的飞行器飞行了三分多钟——实现了前所未有规模火箭的几个里程碑——但星际飞船在发射过程中也失去了多个引擎,对地面基础设施造成严重破坏,最终未能在发射后到达太空。火箭开始翻滚并在空中被摧毁。
Starship 是 SpaceX 开发的 SpaceX BFR“超重型”火箭的完全可重复使用的第二级和航天器。它是一种长期载货和载客航天器,也是 BFR 运载火箭第二级和综合有效载荷部分。该火箭总高度约120米,由底部70米高、配备了33台“猛禽”发动机的“超重型推进器”和顶部50米高的飞船船舱"星舰"组成,这个首次发射成本约30亿美元的“巨无霸”被美国媒体认为是人类史上运载能力最大的火箭。
19年开始关注SpaceX,之前写过一篇文章 你相信1小时能到达世界任何角落吗。如果将火箭代替飞机跨国航行,并实现多级回收,将为地对地运输带来无限可能。众所周知,马斯克对登录火星有很强的执念,他创造SpaceX最主要的目标就是要实现人类的火星移民。可以说,Starship的此次发射也是为将来登录火星做准备的。
马斯克曾公开声称,一旦Starship试验成功,就将启动规模化生产。如果以每年建造100艘,那在10年内就能打造一个由1000艘Starship组成的太空舰队,有望将10万人送到火星。
梦想总是要有的,万一实现了呢。
最后,就让我们畅想一下人类大规模移民火星的那一天吧!
SpaceX及其创始人马斯克都认为,这算是一次成功的试射。该领域专家也认同这样的说法。这次发射也获得中国舆论关注,其中夹杂着喝彩与嘲讽。有网友评价道,“成功上不了热搜,失败了肯定可以”。尽管没能按该计划进行,但SpaceX的创始人马斯克祝贺SpaceX团队进行了“一次激动人心的试射”,并表示这为“几个月后的下次试射”提供了经验。在星舰发射前,马斯克就表示指望首飞就成功是不理智的,只希望不要在发射台发生爆炸。SpaceX的工程师蒂斯(Kate Tice)也说,没损坏发射台本来就是“我们唯一的愿望”。
马斯克的39页火星计划 making_life_multiplanetary-2017.pdf
成为星际物种 making_life_multiplanetary_transcript_2017.pdf