->的用法

->运算符叫做“指向结构体成员运算符”,是C语言和C++语言的一个运算符。

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
using  namespace  std;
class  C
{
public :
     int  num;
     string name;
};
int  main( void )
{
     C obj;
     C *p = &obj;
     p->num = 5;
     p->name =  "Tony" ;
     cout << p->num << p->name << endl;
     return  0;
}

转载于:https://www.cnblogs.com/lanclot-/p/11110318.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个使用 Java 的 wait() 和 notify() 方法来实现交替输出的示例代码: ```java import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); Object lock = new Object(); Thread t1 = new Thread(() -> { for (int i = 1; i <= 4; i += 2) { synchronized (lock) { list.add(i); System.out.println("t1 ---> " + i); lock.notify(); try { lock.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } } }); Thread t2 = new Thread(() -> { for (int i = 2; i <= 4; i += 2) { synchronized (lock) { while (list.isEmpty()) { try { lock.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println("t2 ---> " + i); list.clear(); lock.notify(); } } }); t1.start(); t2.start(); } } ``` 在这个示例中,我们使用了一个共享的 List 作为缓冲区,并定义了一个锁 `lock`,用来保证线程安全。生产者线程 t1 负责往 List 中添加数据,并在添加完数据后使用 `notify()` 方法通知消费者线程 t2 可以取出数据了。消费者线程 t2 则负责从 List 中取出数据并输出。 在生产者线程 t1 中,我们使用了 `wait()` 方法等待消费者线程的通知,并使用 `notify()` 方法通知消费者线程可以取出数据了。 在消费者线程 t2 中,我们使用了一个 while 循环来等待生产者线程的通知,并使用 `wait()` 方法等待生产者线程的通知。当 List 不为空时,我们取出数据并输出,并清空 List,然后使用 `notify()` 方法通知生产者线程可以添加数据了。 运行这个程序,你会得到以下输出: ``` t1 ---> 1 t2 ---> 2 t1 ---> 3 t2 ---> 4 ``` 可以看到,两个线程交替输出了所需的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值