chapter01_简介_1_简介

本文探讨了线程在软件开发中的优势,如利用多处理器能力、简化建模、简化异步事件处理和提高用户界面响应性。同时,也讨论了线程带来的风险,包括安全性、活跃性和性能问题。此外,文章还列举了一些常见的多线程应用场景。

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

  • 线程的优势

    (1) 发挥多处理器的强大能力

    (2) 建模简单

    每个线程只包含一种类型的任务,方便编写和测试

    (3) 异步事件的简化处理

    使用非阻塞IO的复杂性远远高于同步IO

    (4) 响应更灵敏的用户界面

  • 线程带来的风险

    (1) 安全性问题

    带来不可预测的结果

    (2) 活跃性问题

    死锁、活锁、饥饿问题

    (3) 性能问题

    线程切换需要时间

  • 已经存在多线程的应用

    即使在程序中没有显式的创建线程,很有可能也使用了多线程

    (1) JVM启动时,创建后台线程,用于垃圾收集等

    (2) java.util.Timer类

    (3) Servlet和JSP

    如果没有在分布式环境部署,则web.xml中声明了几个Servlet就创建几个Servlet实例。因此一个Servlet实例可能会被多个线程使用,需要是线程安全的

    (4) Swing和AWT

    有一个事件分发线程,当某个用户界面事件发生时,在事件线程中调用应用程序的事件处理器

import chromadb from chromadb.api.types import Documents,EmbeddingFunction, Embeddings from transformers import AutoModel, AutoTokenizer from sentence_transformers import SentenceTransformer model = SentenceTransformer(model_name_or_path=embedding_model_dir) print('============>',model.encode('你好')) class MyEmbeddingFunction(EmbeddingFunction): def __call__(self, texts: Documents) -> Embeddings: embeddings = [model.encode(x) for x in texts] return embeddings def validate_ids(ids): if not all(isinstance(id, str) for id in ids): raise ValueError("All IDs must be strings.") return ids valid_ids = validate_ids(collectionDbs['ids']) valid_ids # 初始化客户端 client = chromadb.PersistentClient(path="./vector_db") collection = client.create_collection( name="papers4", embedding_function=MyEmbeddingFunction, metadata={"hnsw:space": "cosine"} # 相似度计算方式 ) # 添加数据 collection.add( documents=["3.1 实验设计...", "3.2 数据采集..." ], # 文本块 metadatas=[ { 'title': 'USR-DR801 使用手册', 'run_item': '场馆', 'keywords':'["量子计算", "密码学", "Shor算法"]', 'chapter': '1. 产品简介', 'page_range': '', 'source_file': '' }, { 'title': 'USR-DR801 使用手册', 'run_item': '场馆', 'keywords': '["量子计算", "密码学", "Shor算法"]', 'chapter': '2. 产品操作入门', 'page_range': '', 'source_file': '' }], ids=['paper01_chunk018','paper01_chunk020']) 以上代码执行报错:Expected EmbeddingFunction.__call__ to have the following signature: odict_keys(['self', 'input']), got odict_keys(['self', 'args', 'kwargs'])
03-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值