C#多线程并行编程--第三课
2020-12-13 01:53
标签:-- 获取 span style none 方式 new t 总结 get 1.Thread中的一些静态方法 给所有的线程分配一个数据槽,存放数据 GetData SetData 2.Thread中的一些静态方法的使用 变量=>Thread的关系t1,t2 t1,t2 共享变量 public 有锁 t1,t2各有一个变量 internel 无锁 3.性能提升版本 ThreadState 4.ThreadLocal:也是用来做线程可见性 从笔记的中,学习总结: C#多线程并行编程--第三课 标签:-- 获取 span style none 方式 new t 总结 get 原文地址:https://www.cnblogs.com/2828sea/p/11016652.html
////分配已经命名的槽位
//var solt=Thread.AllocateNamedDataSlot("username");
//// var solt = Thread.AllocateDataSlot();
////在主线程中给槽位赋值,只能在主线程读取,子线程读取不到
//Thread.SetData(solt, "Hello Word!");
//var t = new Thread(()=> {
// var obj = Thread.GetData(solt);
// Console.WriteLine("当前工作的线程:{0}",obj);
//});
//t.Start();
//var obj2= Thread.GetData(solt);
//Console.WriteLine("主线程:{0}", obj2);
[ThreadStatic]
static string username = string.Empty;
static void Main(string[] args)
{
username = "Hello Word!";
var t = new Thread(() =>
{
Console.WriteLine("当前工作的线程:{0}", username);
});
t.Start();
Console.WriteLine("主线程:{0}", username);
Console.Read();
static void Main(string[] args)
{
ThreadLocalstring> local = new ThreadLocalstring>();
local.Value = "Hello World!";
//username = "Hello Word!";
var t = new Thread(() =>
{
Console.WriteLine("当前工作的线程:{0}", local.Value);
});
t.Start();
Console.WriteLine("主线程:{0}", local.Value);
Console.Read();
}