LingxinMeng 8 月之前
父节点
当前提交
7259cb15dc
共有 5 个文件被更改,包括 65 次插入1 次删除
  1. 1 0
      test/a.txt
  2. 1 0
      test/b.txt
  3. 11 1
      test/io_test.go
  4. 19 0
      test/mutex_test.go
  5. 33 0
      test/sync_test.go

+ 1 - 0
test/a.txt

@@ -0,0 +1 @@
+在那片被晨曦温柔拥抱的古老森林中,阳光透过密集的树冠,洒下斑驳陆离的光影,仿佛是大自然最细腻的笔触,在静谧的大地上勾勒出一幅幅生动的画卷。空气中弥漫着泥土与树叶混合的清新气息,每一次深呼吸都像是在进行一场心灵的洗礼。林间小径上,一只小鹿轻盈地跳跃着,它那洁白如雪的皮毛在晨光中闪烁着柔和的光泽,颈间的铃铛随着步伐轻轻作响,清脆悦耳,为这宁静的早晨增添了几分生动与活力。不远处,一条清澈见底的小溪潺潺流过,水声潺潺,如同天籁之音,洗涤着世间的尘埃与烦恼。沿着小溪前行,你会发现一片隐秘的花海,各色鲜花争奇斗艳,竞相绽放,红的如火、黄的似金、白的胜雪,它们以最绚烂的姿态迎接着每一个访客的到来。蜜蜂在花间穿梭忙碌,蝴蝶翩翩起舞,一切都显得那么和谐而美好,仿佛时间在这一刻静止了。站在这片花海之中,我不禁感慨大自然的鬼斧神工,它用无尽的创造力和无尽的温柔,编织出这个世界上最动人的风景。而我们,作为这浩瀚宇宙中的一粒微尘,能够有幸见证并体验这份美好,实属难得。让我们珍惜这份恩赐,用心去感受生活中的每一个瞬间,让心灵得到真正的释放与自由。

+ 1 - 0
test/b.txt

@@ -0,0 +1 @@
+hello world

+ 11 - 1
test/io_test.go

@@ -1,9 +1,19 @@
 package test
 
 import (
+	"fmt"
+	"io"
+	"os"
 	"testing"
 )
 
 func TestIO(t *testing.T) {
-	//file, err := os.Open("a.txt")
+	//file, err := os.OpenFile("b.txt", os.O_RDONLY, 0)
+	file, err := os.OpenFile("b.txt", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0)
+	if err != nil {
+		panic(err)
+	}
+	defer file.Close()
+	contentBytes, err := io.ReadAll(file)
+	fmt.Println(string(contentBytes))
 }

+ 19 - 0
test/mutex_test.go

@@ -0,0 +1,19 @@
+package test
+
+import (
+	"sync"
+	"testing"
+)
+
+func TestMutex(t *testing.T) {
+	m1 := sync.Mutex{}
+	m1.Lock()
+	defer m1.Unlock()
+
+	m2 := sync.RWMutex{}
+	m2.RLock()
+	defer m2.RUnlock()
+	m2.Lock()
+	defer m2.Unlock()
+
+}

+ 33 - 0
test/sync_test.go

@@ -0,0 +1,33 @@
+package test
+
+import (
+	"fmt"
+	"sync"
+	"testing"
+)
+
+func TestSync(t *testing.T) {
+	// 创建一个对象池,New 是当对象池为空时提供的对象
+	pool := sync.Pool{
+		New: func() interface{} {
+			fmt.Println("Creating a new instance.")
+			return "New Object"
+		},
+	}
+
+	// 从池中获取对象
+	obj1 := pool.Get().(string)
+	fmt.Println("Got:", obj1)
+
+	// 放回对象池
+	pool.Put("Reused Object")
+
+	// 再次从池中获取对象,这次会使用池中已有的对象
+	obj2 := pool.Get().(string)
+	fmt.Println("Got:", obj2)
+
+	// 第三次从池中获取对象,池已为空,会调用 New 函数创建新对象
+	obj3 := pool.Get().(string)
+	fmt.Println("Got:", obj3)
+
+}