join yield daemon

本文介绍了Java多线程编程中的关键概念:Join方法用于使当前线程等待被join的线程结束;yield方法让当前线程暂停;daemon守护线程则会在所有用户线程结束后随JVM一同终止。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Join : 等待线程终止。 当前线程必须等待join的线程终止才能退出

yield: 暂停当前线程

daemon: 守护进程, 只要JVM中还有一个活着的进程, 这个线程就不会退出。

def write2csv_optimized(value_dict, output_file, name, batch_size=10000): """优化后的写入函数(分批次+异步)""" if not value_dict: print('CSV数据为空') return # 1. 定义字段名(原逻辑保持不变) fieldnames = { "ins": ['timestamp', 'longitude_ins', 'latitude_ins','INS_PreciousLvl'], "gnss": ['timestamp', 'gnss_lon', 'gnss_lat', 'postype'], "loc": ['timestamp', 'loc_lon', 'loc_lat', 'loc_height', 'loc_heading','loc_vehicle_spd_err'], "compare": [ 'gnss_timestamp', 'fusion_time', 'timestamp_delta', 'lon_delta', 'lon_delta_m', 'lat_delta', 'lat_delta_m', 'fusion_lon', 'fusion_lat', 'fusion_height', 'fusion_heading', 'gnss_lon', 'gnss_lat', 'gnss_lon_02', 'gnss_lat_02', 'postype','loc_vehicle_spd_err','INS_PreciousLvl' ] }.get(name) # 2. 排序数据(原逻辑保持不变) sorted_items = sorted(value_dict.items(), key=lambda item: int(item[0])) # 3. 分批次写入 def _write_batch(batch): with open(output_file, mode='a', newline='') as csvfile: writer = csv.DictWriter(csvfile, fieldnames=fieldnames) if csvfile.tell() == 0: # 仅首次写入表头 writer.writeheader() for utc, values in batch: row_dict = {'gnss_timestamp': utc} if name == "compare" else {'timestamp': utc} row_dict.update(dict(zip(fieldnames[1:], values))) writer.writerow(row_dict) # 4. 异步写入控制 def _async_writer(q): while True: batch = q.get() if batch is None: # 终止信号 break _write_batch(batch) q.task_done() # 启动异步写入线程 q = Queue() writer_thread = Thread(target=_async_writer, args=(q,), daemon=True) writer_thread.start() # 5. 分块提交数据 for i in range(0, len(sorted_items), batch_size): batch = sorted_items[i:i + batch_size] q.put(batch) q.put(None) # 发送结束信号 writer_thread.join() # 等待写入完成 return 1
07-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值